Как преобразовать строку в массив - PullRequest
1 голос
/ 19 февраля 2011

У меня есть массив что-то вроде этого

$arr1 = array(
    '0' => '674534856|213123213|232313123',
    '1' => '349578449|782374879|232313123'
);

Я перебираю массив arr1,

for ($x=0; $x < $count; $x++) {
    $check = explode("|", $arr1[$x]);
    array_pop($check);

    $count_check = count($check);

    for ($z=0; $z < $count_check; $z++) {
        array_push($result, $check[$z]); 
    }  
}

Это не работает, как ожидалось. Любая помощь приветствуется. Спасибо.

РЕДАКТИРОВАТЬ $result является массивом результатов

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

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

$result = explode('|', implode('|', $arr1));
0 голосов
/ 19 февраля 2011

Попробуйте

$result = explode('|', join('|', $arr1));

// outputs
array('674534856', '213123213', '232313123', '349578449', '782374879', '232313123') 

Или

$result = array_map(function($temp) { return explode('|', $temp); }, $arr1);

// outputs
array(
    [0] => array('674534856', '213123213', '232313123'), 
    [1] => array('349578449', '782374879', '232313123') 
)
...