2016-03-31 17 views

答えて

4
$newArray = []; 
foreach ($arr as $item) { 
    $items = explode('_', $item); 
    $newArray[$items[0]][$items[1]] = $item; 
} 
var_dump($newArray); 
exit(); 

これはトリックを行う必要があります。 explode function

+0

おかげであなたの試みを投稿してみましたが何をしています。出来た。 –

2

foreachループなしでこれを行う別の方法です。 : - >

$arr = array('0_1','0_3','1_2','1_1','4_1'); 
$result = []; 
array_walk($arr,function($v,$k)use (&$result){ 
    $data = explode("_",$v); 
    $result[$data[0]][$data[1]] = $v; 
}); 
print_r($result); 
+0

あなたのソリューションをありがとう。しかし、最初の解決策はより読みやすく、シンプルであるようです。 –

1
$arrv = array('0_1','0_3','1_2','1_1','4_1'); 
$newArray = []; 
array_walk($arrv,function($value,$key){ 
    global $newArray; 
    $indexArray = explode("_",$value); 
    $newArray[$indexArray[0]][$indexArray[1]] = $value; 
}); 
var_dump($newArray);