2017-11-14 14 views
2

特定のキー(product_id)の配列行に格納されているすべての値で構成されるリストを作成する必要があります。私はので、推測、特定のキーのネストされた配列行からすべての値を収集する

$ids = array_column($bestsellers, 'product_id'); 

...しかし、それは空の配列を作成:

Array 
    (
    [0] => stdClass Object 
     (
      [product_id] => 178 
      [order_item_qty] => 9 
     ) 

    [1] => stdClass Object 
     (
      [product_id] => 233 
      [order_item_qty] => 4 
     ) 

    [2] => stdClass Object 
     (
      [product_id] => 179 
      [order_item_qty] => 1 
     ) 
) 

その他はSOの回答がしようとする私を導い:現在、私の$ベストセラー変数のますprint_rを行うと、以下の配列を生成します私がつかまそうとしている行がそこに入れ子になっていますか?それを念頭に置いて試してみた

foreach($bestsellers as $bestseller) { 
    $ids = array_column($bestsellers, 'product_id'); 
} 

...まったく結果が出なかった。 うまくいけば、誰かが私が間違っている場所について私を手がかりにしてくれることを願っています。ありがとう!

答えて

1

ネストされた値はオブジェクトであり、配列ではありません(出力にstdClass Objectは表示されません)。 array_columnは2次元配列用です。オブジェクト構文を使用してプロパティにアクセスする必要があります。今後の参考のために

$ids = array_map(function($x) { return $x->product_id; }, $bestsellers); 
+0

ところで、あなたはそれがオブジェクトの配列の代わりに2次元配列を返す作るために' true'を2番目の引数を使用することができます。 – Barmar

+0

私はそれがちょうどいいと思った...しかし、私はかなりPHPに新しいと考えても、それはあまり重視していない配列の単語を見た。これがうまくいって、解決と説明に感謝します! – user8941305

1

array_column will work for this in PHP 7、あなたがPHP 7の場合はPHP 5

を使用している必要がありますので、あなたのコード

$ids = array_column($bestsellers, 'product_id'); 

あなたはそれがやりたいだろう。あなたはjson_decode` `からこれを得た場合

See the difference here on 3v4l.org.

+0

ええ、彼らのサーバーは5を実行しています - しかし、どのようなクールなリソース、チップのおかげでうーん – user8941305

関連する問題