2017-01-26 16 views
0

は、私はPHPの配列以下のように過ごしています:このPHP配列を正しく作成する方法は?

$categories = array(
    array('id' => 1, 'parent' => 0, 'name' => 'Category A'), 
    array('id' => 2, 'parent' => 0, 'name' => 'Category B'), 
    array('id' => 3, 'parent' => 0, 'name' => 'Category C'), 
    array('id' => 4, 'parent' => 0, 'name' => 'Category D'), 
    array('id' => 5, 'parent' => 0, 'name' => 'Category E'), 
    array('id' => 6, 'parent' => 2, 'name' => 'Subcategory F'), 
    array('id' => 7, 'parent' => 2, 'name' => 'Subcategory G'), 
    array('id' => 8, 'parent' => 3, 'name' => 'Subcategory H'), 
    array('id' => 9, 'parent' => 4, 'name' => 'Subcategory I'), 
    array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'), 
); 

配列の上にルーピング、私はforeachの内部に別の配列を作成したいです。

$cats[$parent][$id] = $name; 

これは私がそれを試みた方法です: その配列は次のようなものでなければなりません。

foreach ($categories as $key => $value) {   
    // echo '<pre>', print_r($value). '</pre>'; 
    // echo $value['id']; 
    $cats[$value['parent']][$value['id']] = $value['name']; 
    } 

しかし、私のために働いていません。動作していない、間違った配列を作成します。

誰でも助けてくれますか?ありがとうございました。

+0

ようにしたいですか? –

+0

@HikmatSijapati、「名前の別々の配列」とはどういう意味ですか? – user3733831

答えて

0

このようにします。カテゴリの配列を作成します。

<?php 

$categories = array(
    array('id' => 1, 'parent' => 0, 'name' => 'Category A'), 
    array('id' => 2, 'parent' => 0, 'name' => 'Category B'), 
    array('id' => 3, 'parent' => 0, 'name' => 'Category C'), 
    array('id' => 4, 'parent' => 0, 'name' => 'Category D'), 
    array('id' => 5, 'parent' => 0, 'name' => 'Category E'), 
    array('id' => 6, 'parent' => 2, 'name' => 'Subcategory F'), 
    array('id' => 7, 'parent' => 2, 'name' => 'Subcategory G'), 
    array('id' => 8, 'parent' => 3, 'name' => 'Subcategory H'), 
    array('id' => 9, 'parent' => 4, 'name' => 'Subcategory I'), 
    array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'), 
); 

foreach ($categories as $key => $value) {   

    $cats[$value['parent']][$value['id']][]= $value['name']; 
    } 

    print_r($cats); 
+0

実際には、このような別の配列を作成したいと思います。$ cats [$ parent] [$ id] = $ name; ' – user3733831

+0

@ user3733831このように.. –

0

あなたが名前の配列を区切るしたいこの

<?php 
$categories = array(
array('id' => 1, 'parent' => 0, 'name' => 'Category A'), 
array('id' => 2, 'parent' => 0, 'name' => 'Category B'), 
array('id' => 3, 'parent' => 0, 'name' => 'Category C'), 
array('id' => 4, 'parent' => 0, 'name' => 'Category D'), 
array('id' => 5, 'parent' => 0, 'name' => 'Category E'), 
array('id' => 6, 'parent' => 2, 'name' => 'Subcategory F'), 
array('id' => 7, 'parent' => 2, 'name' => 'Subcategory G'), 
array('id' => 8, 'parent' => 3, 'name' => 'Subcategory H'), 
array('id' => 9, 'parent' => 4, 'name' => 'Subcategory I'), 
array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'), 
); 
$newarray = array(); 
foreach($categories as $array) 
{ 
    $newarray[$array['parent']][$array['id']] = $array['name']; 
} 
print_r($newarray); 
+0

yea please we can –

関連する問題