2012-11-01 5 views
0

Je ne peux pas pour la vie de me trouver une belle façon d'obtenir un tableau d'objets comme celui-ci (serait en fait un éventail beaucoup plus large d'un db):fusion des objets avec PHP sous-tableau

Array 
(
    [0] => stdClass Object 
     (
      [name] => Canterbury 
     ) 

    [1] => stdClass Object 
     (
      [name] => West Coast 
     ) 

) 

dans un tableau à un seul niveau comme celui-ci:

Array 
(
    [0] => Canterbury 
    [1] => West Coast 
) 

Alors que quand je fais un json_encode, il ressemble à ceci:

{"0":"Canterbury","1":"West Coast"} 

plutôt th un ceci:

[{"name":"Canterbury"},{"name":"West Coast"}] 

J'ai essayé une variété de choses, comme l'utilisation de combiner et de fusionner les fonctions de tableau de php, mais pas de chance.

+0

'{ "name": "Canterbury", "name": "West Coast"} '--- ce n'est pas possible – zerkms

+0

' {"name": "Canterbury", "name": "Côte Ouest"} 'définit un objet avec deux propriétés' name'. Pourquoi voudrai-tu ceci? – akatakritos

+0

Désolé, je voulais dire - {"0": "Canterbury", "1": "West Coast"} ont changé la question en conséquence. – routeburn

Répondre

0

simple:

$output = array(); 
foreach($objectArray as $oneObject) 
    $output[] = $oneObject->name; 
echo json_encode($output); 
+0

Génial ce trié pour moi. Mon problème principal n'était pas de réaliser que vous pouviez 'indexer' la propriété name sans les guillemets. – routeburn

+0

'$ output []' est plus commun et lisible dans ce cas – zerkms

0

Eh bien, je pense que vous avez juste besoin de mettre l'attribut name de l'objet en place de la valeur du tableau:

foreach($array as $key => $value){ 
    $value = $value->name 
}