2013-12-25 3 views
0

У меня есть массив PHP с каждым значением в массиве, имеющие space разделителя, какPHP разделить каждое значение массива в 2 с разделителем

a[1]="1 32" 
a[2]="2 33" 
a[3]="3 67" 
... 

Я хочу разделить этот массив в 2 массивов, используя разделитель space , Результат должен быть примерно таким:

a[1]="1" 
a[2]="2" 
a[3]="3" 
... 
b[1]="32" 
b[2]="33" 
b[3]="67" 
... 

Какой должен быть оптимальный способ?

+0

Вы можете использовать это: http://www.php.net/split и сохранить его первое значение в массиве a [i], а второе в b [i] ... Рассмотрим (i), чтобы быть вашим положение в массиве в случае, если вы вставляете случайное время. (Мне просто сообщили, что это не работает, поэтому вы не захотите это использовать) – Ljubisa

+0

@ LJ-C 'split' устарел, его больше не следует использовать. 'Эта функция была DEPRECATED с PHP 5.3.0. Опираясь на эту особенность, вы очень разочаровываетесь. « – SamV

+0

@SamV благодарит за то, что дал мне знать, что я не знал этого .. – Ljubisa

ответ

1

Петля через массив, используйте explode() разделить каждое значение с пространством в качестве разделителя, и подталкивать их, чтобы отделить массивы:

$arr1 = array(); 
$arr2 = array(); 

foreach ($array as $value) { 
    list($a, $b) = explode(' ', $value); 
    $arr1[] = $a; 
    $arr2[] = $b; 
} 

Demo.

-1

Вы можете использовать explodehttp://www.php.net/explode

Например , explode(" ", $a[1]);

+0

Он хочет, чтобы элементы в двух разных массивах [] и b [] помещали их в один массив. –

+0

Я только пытался показать базовое использование функции взрыва. – MillaresRoo

1

Моя взять с собой array_walk():

<?php 

$input = [ 
    "1 32", 
    "2 33", 
    "3 67" 
]; 

$array1 = []; 
$array2 = []; 

array_walk($input, function ($item) use (&$array1, &$array2) { 
     $temp = explode(' ', $item); 
     $array1[] = $temp[0]; 
     $array2[] = $temp[1]; 
    } 
); 

print_r($array1); 
print_r($array2); 

Примечание: Синтаксис предполагает PHP 5.4. Demo.

Смежные вопросы