Php Multi Arraylist最后元素

时间:2015-10-14 02:10:21

标签: php arraylist

我正在尝试从我的数据创建一个Json + ld架构,但我对这个arraylist有问题。

我需要知道数组列表中的最后一个元素

    foreach ($malzemeler as $val):
    echo 'ana'.$fkey.'</br>';
    foreach($val['malzemeler'] as $val):
        echo $val.', ';
    endforeach;
endforeach;

此代码可帮助我获取所需的所有值,但我必须添加&#34;,&#34;他们直到最后一个元素

   Array
(
    [0] => Array
        (
            [title] => Malzemeler
            [malzemeler] => Array
                (
                    [0] => 1 su bardağı kırmızı mercimek
                    [1] => 1 adet soğan
                    [2] => 1 yemek kaşığı un
                    [3] => 1 adet havuç
                    [4] => yarım yemek kaşığı biber ya da domates salçası (rengi kırmızı olsun isterseniz artırabilir ya da hiç kullanmayabilirsiniz)
                    [5] => Tuz
                    [6] => 1 çay kaşığı karabiber
                    [7] => yarım çay kaşığı kimyon (isteğe bağlı)
                    [8] => 1 litre su
                    [9] => 2 yemek kaşığı sıvı yağ
                )

        )

    [1] => Array
        (
            [title] => Sosu için
            [malzemeler] => Array
                (
                    [0] => 2 yemek kaşığı tereyağı
                    [1] => 1 tatlı kaşığı kırmızı toz biber
                )

        )

)


"1","2","3","4","5","6","7"

foreach ($malzemeler as $key => $val):
  $last_key = end(array_keys($malzemeler));
  if ($key == $last_key):
    echo implode(', ',$val['malzemeler']).'"'.PHP_EOL;
  else:
    foreach ($val['malzemeler'] as $val):
      echo '"'.$val.'", '.PHP_EOL;
    endforeach;
  endif;
endforeach;

2 个答案:

答案 0 :(得分:0)

编辑:现在我可以看到您要完成的任务:

for($i = 0; $i  < count($malzemeler) - 1; $i++)
  echo '"' . implode('", "',$malzemeler[$i]) . '", ' . PHP_EOL;
echo '"' . implode('", "',$malzemeler[$i]) . '"' . PHP_EOL;

旧答案

不是循环遍历$malzemeler的每个元素,而是使用comp.lang.c FAQ,它会将数组的所有元素连接在一起,放置在它们之间传递的任何字符串。

foreach ($arr as $val)
  echo 'ana'. $fkey.'<br/>'.implode(', ', $val['malzemeler']);

您也可能不应像在foreach循环中那样使用相同的变量名。*

*引用需要

答案 1 :(得分:0)

这是答案,但似乎有点spagetti抱歉,谢谢@Terminus的帮助

<?php foreach ($malzemeler as $key => $val): $last_key = end(array_keys($malzemeler));
        if ($key == $last_key):
            echo '"';
            echo implode(', ', $val['malzemeler']).'"'.PHP_EOL;
        else:
            foreach ($val['malzemeler'] as $val):
                echo '"'.$val.'", '.PHP_EOL;
            endforeach;
        endif;
    endforeach;
    ?>