2017-01-26 26 views
0

Ich habe eine PHP-Array wie folgt:Wie erstelle ich dieses PHP-Array richtig?

$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'), 
); 

Wenn oben Array Looping, ich ein anderes Array innerhalb foreach erstellen möchten. Das Array sollte wie folgt sein:

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

Dies ist, wie ich es versucht.

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

Aber es funktioniert nicht für mich. Nicht arbeiten bedeutet, es schafft falsche Array.

Kann mir jemand helfen. Vielen Dank.

+0

Sie Array von Namen trennen wollen? –

+0

@HikmatSijapati, Was meinst du "separate Reihe von Namen"? – user3733831

Antwort

0

Wie dies.Machen Array von Kategorien.

<?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

Eigentlich möchte ich ein separates Array wie dieses erstellen $ cats [$ parent] [$ id] = $ name; ' – user3733831

+0

@ user3733831 gefällt das .. –

0

Sie wollen wie diese

<?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

ja bitte, wir können –

Verwandte Themen