/ / दो अलग-अलग सरणियों में कॉमा सेपरेटेड स्ट्रिंग कैसे डालें? - php, arrays, string, विस्फोट

अल्पविराम से अलग स्ट्रिंग को दो अलग-अलग सरणी में कैसे रखा जाए? - PHP, सरणी, स्ट्रिंग, विस्फोट

मैं अपनी स्ट्रिंग (कॉमा द्वारा अलग) को 2 अलग-अलग सरणियों में रखना चाहता हूं।

$str = 1,First,2,Second,3,Third,4,Forth,5,Fifth

मेरा लक्ष्य संख्याओं और पाठ को समूहित करना है।

$number = {1,2,3,4,5)
$text = {first, second, third, forth, fifth}

मैंने उपयोग करने की कोशिश की explode(), लेकिन मैं केवल एक ही सरणी बनाने के लिए सहयोगी हूं।

उत्तर:

उत्तर № 1 के लिए 4

यह आपके लिए काम करना चाहिए:

प्रथम explode() अल्पविराम द्वारा आपका तार। तब आप कर सकते हो array_filter() नंबर बाहर। और अंत में आप बस ले सकते हैं array_diff() से ही $arr और यह $numbers सरणी।

<?php

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth";
$arr = explode(",", $str);

$numbers = array_filter($arr, "intval");
$text = array_diff($arr, $numbers);

?>

जवाब के लिए 3 № 2

आप उपयोग कर सकते हैं explode() तथा array_map() परिणामों पर:

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth";

array_map(function($item) use (&$numbers, &$strings) {
if(is_numeric($item)) {
$numbers []= $item;
} else {
$strings []= $item;
}
}, explode(",", $str));

var_dump($numbers, $strings);

जवाब के लिए 3 № 3
<?php

$str = array(1,"First",2,"Second",3,"Third",4,"Forth",5,"Fifth");

$letters =array();
$no = array();

for($i=0;$i<count($str);$i++){
if($i%2 ==0){
$letters[] = $str[$i];

}else{
$no[] = $str[$i];
}
}
print_r($no);
print_r($letters);
?>

जवाब के लिए 2 № 4

यह आपकी मदद कर सकता है

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth";

$array = explode(",",$str);

$number = array();
$string = array();


foreach($array as $val)
{
if(is_numeric($val))
{
$number[] = $val;
}
elseif(!is_numeric($val))
{
$string[] = $val;
}
}

echo $commNum = implode(",",$number); // These are strings
echo "<br/>".$commStr = implode(",",$string); // These are strings

echo "<pre>";
print_r($number);  // These are arrays

echo "<pre>";
print_r($string);  // These are arrays

जवाब के लिए 2 № 5

यह आपके लिए काम करना चाहिए।

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth";
$result = explode(",",$str);
$number = array();
$text = array();
foreach(explode(",",$str) as $key => $value){
if($key % 2 == 1){
$text[] = $value;
}elseif($key % 2 == 0){
$number[] = $value;
}
}
print_r($number);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
print_r($text);//Array ( [0] => First [1] => Second [2] => Third [3] => Forth [4] => Fifth )

और यदि आपकी सरणी इस तरह से सुसंगत नहीं है, तो इनमें से कुछ उत्तर आपके लिए Rizier123, hek2mgl, और Sunil जैसे एक के अनुकूल हैं।

मैं एड्रियन पर अपने संवाददाता टिप्पणियों के लिए अपना जवाब अपडेट कर रहा हूं

foreach(explode(",",$str) as $key => $value){
if(is_numeric($value)){
$number[] = $value;
}else{
$text[] = $value;
}
}

उत्तर के लिए 1 № 6

आप उपयोग कर सकते हैं explode, लेकिन आपको इस मामले में कुछ फ़िल्टर लागू करने की आवश्यकता है is_numeric:

<?php

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth, erewwrw , 6 ";

$array = explode(",", $str);

$array_numbers = array();
$array_letters = array();

for($i = 0; $i < count($array); $i++) {
if(is_numeric(trim($array[$i]))) {
$array_numbers[] = trim($array[$i]);
} else {
$array_letters[] = trim($array[$i]);
}
}
print_r($array_numbers);
print_r($array_letters);

?>

आउटपुट:

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
[0] => First
[1] => Second
[2] => Third
[3] => Forth
[4] => Fifth
)

उत्तर के लिए 1 № 7

यह मानते हुए कि आपकी स्ट्रिंग में स्ट्रिंग और उसके बाद नंबर शामिल हैं,

निम्नलिखित समाधान होना चाहिए।

दो रिक्त सरणियाँ बनाएँ: $numbers तथा $strings.

बस सरणी पर लूप करें और समान और विषम तत्व प्राप्त करें।

यहां तक ​​कि तत्वों को संख्या सरणी में जाना चाहिए और विषम तत्वों को स्ट्रिंग सरणी में जाना चाहिए।

$str = "1,First,2,Second,3,Third,4,Forth,5,Fifth";
$numbers = array();
$strings = array();
$temp = explode(",", $str);
$i=0;
foreach ($temp as $e) {
if ($i%2) {
$strings[] = $e;
}
else {
$numbers[] = $e;
}
++$i;
}

echo "<pre>";
print_r($numbers);
echo "</pre>";

echo "<pre>";
print_r($strings);
echo "</pre>";