PHP foreach两次回送特定的数组项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP foreach两次回送特定的数组项相关的知识,希望对你有一定的参考价值。
我在teamtreehouse.com上学习了php基础课程,在本课程中我学习了PHP循环。关于PHP foreach
循环,我写了这个代码,工作正常:
<?php
$items = array(
'item1' => 'X',
'item2' => 'Y',
);
foreach ($items as $item) {
echo $item . "<br>";
}
X
和
然而,当我尝试以这种方式迭代foreach元素后定位特定项目时:
foreach ($items as $item) {
echo $items['item1'];
}
输出是XX
而不是X
。
我的问题是为什么我首先得到XX
并且答案可以帮助我理解如何使用X
提取我想要的特定值(第一个键值对的值 - foreach
)。
发生了两件不同的事情:
- 为每次迭代打印数组中的当前值
- 每次迭代按键引用相同的项目
这个数组有2个项目:
$items = array(
'item1' => 'X',
'item2' => 'Y',
);
现在,如果使用foreach循环数组,则可以使用以下语法:
foreach ($items as $item) {
echo $item . "<br>";
}
现在您正在使用$item
,这是foreach中的当前项目。在这种情况下,这将为每次迭代打印2个不同的值:“X”和“Y”。
现在查看代码的第二部分:
foreach ($items as $item) {
echo $items['item1'];
}
现在,您每次迭代都使用$items['item1'];
。这意味着你指的是$items
中的项目,其密钥为item1
,其值为“X”。这就是你得到“X”和“X”的原因。
如果你想直接从$items
获得一个项目,你可以这样做:
$items["item1"];
如果你想使用foreach来获取值为“X”的项,并且你知道键是“item1”,你可以这样做:
foreach ($items as $key => $item) {
if ($key === "item1") {
echo $item;
}
}
你应该知道foreach的另一个用例:
Foreach将遍历数组中的每个元素,以及每个{key&value}元素。
您可以使用以下代码:
$items = array(
'item1' => 'X',
'item2' => 'Y',
);
foreach ($items as $key => $value) {
echo $key. ":" . $value . "<br>";
}
这将打印
物品1:X
第2项:Y
foreach
函数遍历数组的次数与数组中元素的数量一样多,在您的示例中,这两个元素是2(第一个元素是键item1
,第二个元素是键item2
)。
访问数组中第一个元素的代码是$items['item1'];
,它在print / echo将输出此键的值(item1
),即X
由于foreach
函数迭代了两次,因此它在其中执行了两次代码,在您的情况下打印一个值X
(因此在迭代结束时打印两次)
只是为了提取特定的值,你可以使用echo $items['item1']
; (例如,在item1
中提取值)没有foreach循环(因为你不需要遍历数组中的每个元素)
例如,您可以尝试以下代码:
<?php
$items = array(
'item1' => 'X',
'item2' => 'Y',
);
echo $items['item1'];
它将具有以下输出
x
你需要使用foreach
,以防你需要遍历所有数组来执行某些功能,访问特定元素甚至只是搜索你不需要使用foreach
,因为有很多更好的数组函数PHP。
对于每个项目,因为对象中有两个项目(循环运行两次),您将回显第一个项目。这就是它显示“xx”的原因。
这就是我从代码中获得XX
的原因。
<?php
$items = array(
'item1' => 'X',
'item2' => 'Y',
);
foreach ($items as $item) {
echo $items['item1'];
}
用表达式echo $items['item1'];
,我指示循环来否定'item2'
。因此,它仅处理'item1'
指数中的数据,但鉴于echo
是$items
和['item1']
本身的第一个值,该值打印两次:一次作为$items
第一个值的变量扩展,第二个,从使用['item1']
扩展其第一个价值本身。
这就是如何构建PHP的foreach
函数。
为了肯定这个哲学我做了:
$items = array(
'item1' => 'X',
'item2' => 'Y',
'item3' => 'Z',
);
foreach ($items as $item) {
echo $items['item1'];
}
得到了:XXX
。
以上是关于PHP foreach两次回送特定的数组项的主要内容,如果未能解决你的问题,请参考以下文章