1

I have an array something like this

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

I loop through the arr1 array,

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]); 
    }  
}

It's not working as expected. Any help appreciated. Thanks.

EDIT $result is result array

4

2 に答える 2

2

同じimplode()区切り文字を使用して入力配列内のすべてのものを単一の文字列にフラット化し、次にexplode()その区切り文字で次のようにします。

$result = explode('|', implode('|', $arr1));
于 2011-02-19T10:52:59.483 に答える
0

試す

$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') 
)
于 2011-02-19T10:55:43.510 に答える