Используя PHP, я настраиваю вариант в цикле foreach, и у меня возникают проблемы с его выводом. В приведенном ниже примере я вывожу только один $variant, хотя на самом деле в переменной $variantData их 3. Как я могу перебрать каждый $variant и вывести их?
// Loop to find each variants ID
<? foreach ($variantsData as $variantData) {
$variant = array(
'id' => $variantData['variation_id'],
);
} ?>
// Output each variants ID
<? print_r( $variant['id'] ) ?>






Просто добавьте [], чтобы добавить массив. Вы просто перезаписываете переменную $variant каждый раз в цикле foreach(). Вот почему вы выводите только один $variant, когда на самом деле их 3 в переменной $variantData.
// Loop to find each variants ID
<? foreach ($variantsData as $variantData) {
$variant[] = array('id'=> $variantData['variation_id']); // see this line
//^^
// Output each variants ID
print_r($variant);
} ?>
// Output all variants ID
<? print_r( $variant) ?>
Теперь, чтобы получить доступ к конкретному идентификатору варианта, вы также должны использовать индекс, например, чтобы получить первый идентификатор варианта, вы можете использовать
print_r($variant[0]['id']);
РАБОЧАЯ ДЕМО:https://3v4l.org/Wf9TE
Чтобы получить все идентификаторы вариантов сразу, вы можете сделать это.
<? foreach ($variantsData as $variantData) {
// Output each variants ID
echo $variantData['variation_id'];
$variant[] = $variantData['variation_id']; // see this line
} ?>
// Output all variants ID
<? print_r( $variant) ?>
Чтобы получить идентификатор каждого варианта внутри цикла foreach()
<? foreach ($variantsData as $variantData) {
$variant = $variantData['variation_id']; // see this line
// Output each variants ID
echo $variant;
} ?>
Боюсь, это не работает. Я просто получаю пустой вывод
@dungey_140 взгляните на мою правку еще раз, надеюсь, на этот раз вы поймете, что я имею в виду, спасибо, приятель :) удачи
Спасибо за это, однако я хочу избежать использования чего-то вроде $ variant[0]['id'], поскольку он нацелен только на один элемент, я просто хочу буквально перечислить все 3 идентификатора $ variant?
@dungey_140 У меня снова есть ОТРЕДАКТИРОВАНО мой ответ в соответствии с вашим комментарием, посмотрите еще раз :)
Спасибо за это. Хотя это работает для прямого вывода идентификаторов, я, очевидно, уже настроил массив с именем $variant в предыдущем цикле foreach. Я хочу получить доступ к этому массиву, так как я установил гораздо больше данных, чем просто идентификатор, поэтому использование вашего подхода даст мне много кода и повторений. Могу ли я просто получить доступ к $ variant, но для каждого из элементов в $ VariantsData?
@dungey_140 Перепроверьте мое редактирование, echo $variant; напечатает каждое значение $variant
К сожалению, мы не на одной волне. Я хочу вывести $variant['id'], а не повторять $variantData['variation_id']; так как это будет очень долго и громоздко для количества элементов, которые у меня есть в массивах. Конечно, поскольку у меня уже есть настройка этого массива, должно быть легко просто выполнить цикл и повторить существующий массив?
Давайте продолжить обсуждение в чате.
Нет, так как
$variantбудет содержать проиндексированные значения:$variant[0]['id'],$variant[1]['id']и$variant[2]['id']