Php Multi Arraylist Последний элемент

Я пытаюсь создать схему Json + ld из моих данных, но у меня есть проблема с этим массивом.

Мне нужно знать последний элемент в списке массивов

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

Этот код помогает мне получить все значения, которые мне нужны, но я должен добавить «,» к ним до последнего элемента

   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;

1

Решение

Это ответ, но, кажется, немного спагетти извините за это, и спасибо @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;
?>
0

Другие решения

редактироватьТеперь, когда я вижу, чего вы пытались достичь:

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

Старый ответ:

Вместо того, чтобы перебирать каждый элемент $malzemelerиспользовать implode() который объединит все элементы массива вместе для вас, поместив любую строку, которую вы передадите между ними.

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

Вы также, вероятно, не должны использовать те же имена переменных в foreach цикл, как вы делаете. *

*нужна цитата

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector