2016-06-20 8 views
1

Ich habe dieses Array ...PHP-Array ersetzen Zahlen mit Tasten

Array 
(
    [result] => Success 
    [finals] => Array 
     (
      [0] => Array 
       (
        [id] => 633 
        [name] => RESULT84 
       ) 
       [0] => Array 
       (
        [id] => 766 
        [name] => RESULT2 
       ) 
       [0] => Array 
       (
        [id] => 22 
        [name] => RESULT1 
       ) 
     ) 
) 

Und ich Extrahieren der Namen wie dieses ...

$names = array_column($data['finals'], 'name'); 
print_r($names); 

Was mich gibt ...

Array 
(
    [0] => RESULT84 
    [1] => RESULT2 
    [2] => RESULT1 
) 

Meine Frage ist, wie kann ich es ändern, so dass ich das bekommen ...

Array 
(
    [RESULT84] => RESULT84 
    [RESULT2] => RESULT2 
    [RESULT1] => RESULT1 
) 

Ist etwas wie array_fill_keys meine beste Wahl?

+0

[array_combine] (http://php.net/array_combine). Obwohl es sich anhört, brauchen Sie Schlüssel und Werte mit der gleichen Zeichenkette ... –

+0

'$ name [array_column ($ data ['finals'], 'name')] = array_column ($ data ['finals'], 'name '); 'vielleicht – Andreas

+0

Mögliches Duplikat von [Wie verwendet man Array-Werte als Schlüssel ohne Schleifen?] (http://stackoverflow.com/questions/31202835/how-to-use-array-values-as-keys-without- Schleifen) –

Antwort

7

Pass dritter Parameter name in array_column machen Schlüsseln

$names = array_column($data['finals'], 'name','name'); 
print_r($names); 
+1

Das ist Schönheit! –

2

Saty es richtig beantwortet. Hier ist der vollständige Code:

<?php 
$data = Array 
    (
     'result' => 'Success', 
     'finals' => Array 
     (
      Array 
       (
        'id' => 633, 
        'name' => 'RESULT84' 
       ), 
      Array 
       (
        'id' => 766, 
        'name' => 'RESULT2' 
       ), 
      Array 
       (
        'id' => 22, 
        'name' => 'RESULT1' 
       ) 
     ) 
    ); 

$names = array_column($data['finals'], 'name','name'); 
print_r($names); 
?> 
Verwandte Themen