2017-06-22 15 views
0

私はphp配列を持っていて、配列の中に数値を持つ別のPHPオブジェクトへの参照があります。PHPループ・アレイ・オブジェクト、またはワイルドカード・キー?

数値配列(配列ごとに異なる可能性があります)を知らなくても、この配列の要素にアクセスするにはどうすればよいですか?

下の画像で

、私は最初の配列のキー(0)私は次のことを行っているためにそう....

$content['field_image_columns'][0]['entity']['field_collection_item'][133]['field_image'] 

ようfield_collection_item内部の値を取得する必要があります...

$i = 0; 
    while($i <= 2) { 
     if(isset($content['field_image_columns'][$i])) { 
      print '<div class="column-' . $i . '">'; 

      foreach ($content['field_image_columns'][$i]['entity']['field_collection_item'] as $fcid => $values) { 
       // Print field values 
      } 

      print '</div>'; 
     } 
     $i++; 
    } 

1つの配列項目に対してforeachループを実行すると、間違っているようです - このユースケースで使用する必要がある方法はありますか?

enter image description here

答えて

1

あなたがして、たとえば、配列の最初の項目を選択することができます。

  1. 使用array_shiftが、それはソース配列を変更します:

    $cur = array_shift($content['field_image_columns'][$i]['entity']['field_collection_item']); 
    print $cur['field_image']; 
    
  2. array_keysで配列のキーを取得し、結果の最初の要素をキーとして使用

    $ks = array_keys($content['field_image_columns'][$i]['entity']['field_collection_item']); 
    print $content['field_image_columns'][$i]['entity']['field_collection_item'][$ks[0]]['field_image']; 
    
  3. 使用current機能:

    $cur = current($content['field_image_columns'][$i]['entity']['field_collection_item']); 
    print $cur['field_image']; 
    
+0

偉大な答えは、ありがとう! – Collins

1

ほとんどのプログラミングと同じように、あなたがそれを行うことができ、非常にいくつかの方法があります。 foreachが動作する場合、それは間違っていませんが、最良の方法ではないかもしれません。

// Get the current key from an array 
$key = key($array); 

キーが不要な場合は、配列から値を取得できます。

// Get the current value from an array 
$value = current($array); 

これらの両方は、ポインタを進めていないことを前提として、配列から最初のキー/値を取得します。

current、key、end、reset、next、& prevは内部について何も知らずに配列を操作できるようにするすべての配列関数です。 http://php.net/manual/en/ref.array.php

+0

すごいです!それは理にかなっている!ありがとうございます:-) – Collins

関連する問題