2016-07-27 9 views
0

hatte ich ein Array zu jedem seines Elementobjekt wurde, i mit folgendem Code, Array umgewandelt habe:wie Array zu ändern, dass jedes Element in Array PHP ist (in der Beschreibung klären)

json_decode(json_encode($array), true) 

, dass das Ergebnis dieser Code war ein Array wie:

[ 
    '1'=>[ 
    'slug'=>'a' 
    'title'=>'foo' 
    ], 
    '2'=>[ 
    'slug'=>'b' 
    'title'=>'bar' 
    ], 
    '3'=>[ 
    'slug'=>'c' 
    'title'=>'foo' 
    ], 
] 

jetzt mag ich dieses Array verdeckte ähnlichen

[ 
    'a'=>'foom', 
    'b'=>'bar', 
    'c'=>'foo', 
] 

irgendwas, wie kann ich tun es ??

Antwort

2

Verwenden foreach und array_combine()

foreach ($your_array as $key => $value) { 
    // get all the keys in $slug array 
    $slug[] = $value['slug']; 
    // get all the values in $title array 
    $title[] = $value['title']; 
} 
// finally combine and get your required array 
$required_array = array_combine($slug, $title); 

Ich denke, es kann auch mit acheived werden -

$requiredArray = array_combine(
    array_column($your_array, 'slug'), 
    array_column($your_array, 'title') 
); 
+0

thnks @ jitendrapurohit die zweite Art der Arbeit wie ein Charme, der erste Weg ist auch currect und ich habe es vorher testen, aber es gibt viele Artikel in der Anordnung, so scheint es ein wenig billig. – Ali

1

Sie haben über den anfänglichen Array zu durchlaufen und die neuen wie folgt erstellen:

$array = [ 
    '1'=>[ 
    'slug'=>'a' 
    'title'=>'foo' 
    ], 
    '2'=>[ 
    'slug'=>'b' 
    'title'=>'bar' 
    ], 
    '3'=>[ 
    'slug'=>'c' 
    'title'=>'foo' 
    ], 
]; 

$result = []; 
foreach($array as $elem){ 
    $index = $elem["slug"]; 
    $value= $elem["title"]; 
    $result[$index] = $value; 
} 
+0

danke. Es wurde gelöst – Ali

1
foreach($array as $elem){ 
    $result[$elem["slug"]] = $elem["title"]; 
} 
+0

danke. es ist gelöst worden – Ali

Verwandte Themen