2014-01-06 49 views
0

我使用https://github.com/humanmade/Custom-Meta-Boxes/來將此自定義可重複的自定義字段設置爲wordpress。給定的陣列是這樣的PHP foreach multi array

Array 
(
    [0] => Array 
     (
      [photoset-caption] => Array 
       (
        [cmb-field-0] => Caption1 
        [cmb-field-1] => Caption2 
        [cmb-field-2] => Caption3 
        [cmb-field-3] => Caption4 
       ) 

      [photoset-image] => Array 
       (
        [cmb-field-0] => 17 
        [cmb-field-1] => 16 
        [cmb-field-2] => 15 
        [cmb-field-3] => 14 
       ) 

     ) 

    [1] => Array 
     (
      [photoset-caption] => Array 
       (
        [cmb-field-0] => Caption1 
        [cmb-field-1] => Caption2 
        [cmb-field-2] => Caption3 
        [cmb-field-3] => Caption4 
       ) 

      [photoset-image] => Array 
       (
        [cmb-field-0] => 17 
        [cmb-field-1] => 16 
        [cmb-field-2] => 15 
        [cmb-field-3] => 14 
       ) 

     ) 

) 

它試圖做的循環是這樣的。

// get the custom fields for this post 
    $photoset = get_post_meta($post->ID, 'photoset_group_fields', false); 

     echo '<div class="photoset">'; 
     echo '<div class="photoset-row">'; 

     foreach($photoset as $photosetloop){ 
     echo '<figure class="photoset-item">'; 
     echo '<div>' . wp_get_attachment_image($photosetloop['photoset-image'], 'large') . '</div>'; 
     echo '<figcaption>' . $photosetloop['photoset-caption'] .'</figcaption>'; 
     echo '</figure>'; 
     } 

     echo '</div>'; 
     echo '</div>'; 

所以循環hass.photoset項目和裏面它有圖像和標題。 我的問題如何對其進行處理,謝謝。我做了數組更新,我有我循環的組。

回答

5

它提出兩個foreachs最簡單的方法,你可以做一個功能,如果你想和遞歸的。

<?php 
$photos =array(
    'photoset-caption' => array(
      'cmb-field-0' => 'Caption1', 
      'cmb-field-1' => 'Caption2', 
      'cmb-field-2' => 'Caption3', 
      'cmb-field-3' => 'Caption4' 
    ), 
    'photoset-image' => array(
      'cmb-field-0' => 17, 
      'cmb-field-1' => 16, 
      'cmb-field-2' => 15, 
      'cmb-field-3' => 14 
    ) 
); 

    foreach($photos as $k => $photo){ 

     echo '<h1>'.$k.'</h1>'; 

     foreach($photo as $key => $value){ 
      echo $key.': '. $value.'<br/>'; 
     } 
     echo '<hr/>'; 
    } 

入住這裏一個例子:example

1

不是最優雅的方式來做到這一點,但它在這種情況下工作。

$arr = Array 
(
    "photoset-caption" => Array 
    (
     "cmb-field-0" => "Caption1", 
     "cmb-field-1" => "Caption2", 
     "cmb-field-2" => "Caption3", 
     "cmb-field-3" => "Caption4" 
    ), 

"photoset-image" => Array 
    (
     "cmb-field-0" => 17, 
     "cmb-field-1" => 16, 
     "cmb-field-2" => 15, 
     "cmb-field-3" => 14 
    ) 
); 

$count = count($arr["photoset-caption"]); 
for($i = 0; $i < $count; ++$i) { 
    echo 'Loop #'.$i.'<br>'; 
    echo $arr["photoset-caption"]["cmb-field-".$i], '<br>'; 
    echo $arr["photoset-image"]["cmb-field-".$i], '<br>'; 
    echo '<br>'; 
} 

您可以在這裏貼: http://writecodeonline.com/php/