无法从foreach循环中输出变体

时间:2019-07-18 16:10:08

标签: php foreach

使用PHP,我在foreach循环中设置了一个变体,并且在输出它时遇到了麻烦。在下面的示例中,当$variant变量中实际上有3个时,我仅输出一个$variantData。如何遍历每个$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'] ) ?>

1 个答案:

答案 0 :(得分:4)

只需添加[]即可追加数组。每次在$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) ?>

现在要访问特定的变体ID,您还必须使用索引,例如,获取第一个变体ID,就可以使用

print_r($variant[0]['id']);

工作演示: https://3v4l.org/Wf9TE

要立即获取所有变体ID,您可以执行此操作。

<? 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()循环中获取每个变体ID

<? foreach ($variantsData as $variantData) {
    $variant = $variantData['variation_id']; // see this line
    // Output each variants ID
    echo $variant;
} ?>