在foreach循环外回显数组键时出错

时间:2017-07-19 09:12:16

标签: php arrays foreach

为什么当我设置这样的数组时:

$plans[] = array(
  'provider'  => 'Boost Mobile',
  'plan'   => 'Unlimited Gigs',
   'url'  => 'https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/',
  'price'      => 50,
  'duration' => 'month',
}

如果我回复出这样一个键,我会感到恐惧:

echo $plans['plan'];

//注意:未定义的索引:计划

BUT 当我在foreach数组中回显它时,它输出值?

感谢任何帮助

5 个答案:

答案 0 :(得分:1)

$plans是一个二维数组。如果您想显示plan,您还需要使用第一个维度,在您的情况下为0。

print_r($plans);
Array
(
    [0] => Array
        (
            [provider] => Boost Mobile
            [plan] => Unlimited Gigs
            [url] => https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/
            [price] => 50
            [duration] => month
        )

)

以下是echo给你的内容:

echo $plans[0]['plan'];
Unlimited Gigs

点击此处观看演示: https://3v4l.org/Ytk79

答案 1 :(得分:1)

您已使用数组定义[],因此无需将$plans[]一起使用,因为它会创建多维数组。

我添加了带有和不带$plans[] = array(); // It creates multi dimensional array $plans = array(); // It creates simple array 的示例。

注意

<?php

$plans[] = array(
  'provider'  => 'Boost Mobile',
  'plan'   => 'Unlimited Gigs',
   'url'  => 'https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/',
  'price'      => 50,
  'duration' => 'month');

print_r($plans);
echo $plans[0]['plan']; echo "\n\n";

$plans2 = array(
  'provider'  => 'Boost Mobile',
  'plan'   => 'Unlimited Gigs',
   'url'  => 'https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/',
  'price'      => 50,
  'duration' => 'month');

print_r($plans2);
echo $plans2['plan'];  

<强>代码

Array
(
    [0] => Array
        (
            [provider] => Boost Mobile
            [plan] => Unlimited Gigs
            [url] => https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/
            [price] => 50
            [duration] => month
        )

)

Unlimited Gigs

Array
(
    [provider] => Boost Mobile
    [plan] => Unlimited Gigs
    [url] => https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/
    [price] => 50
    [duration] => month
)

Unlimited Gigs

<强>输出

{{1}}

检查演示:Click Here

答案 2 :(得分:1)

如果你想定义一个数组$ plans使用这个

,你实际上只是将另一个元素(在本例中是一个数组)添加到一个名为$ plans的现有数组中

$plans = array(
  'provider'  => 'Boost Mobile',
  'plan'   => 'Unlimited Gigs',
   'url'  => 'https://www.boostmobile.com/#!/shop/plans/monthly-phone-plans/',
  'price'      => 50,
  'duration' => 'month',
}

现在,您可以使用此行<$ p>从$ plans数组中检索键'plan'的值

echo $plans['plan'];

答案 3 :(得分:0)

您正在$ plans [0]添加一个数组。

所以你的价值如下。

  $plans[0]['plan'];

您可以通过此

查看完整数组
echo "<pre>"; print_r($plans);

答案 4 :(得分:0)

如果是$plans[]那么你应该这样做

echo $plans[0]['plan'];

如果是$plans那么它将是

echo $plans['plan'];