each() 返回4个值, list 赋值哪两个
each list
初学php,请问each() 返回4个值, list 赋值哪两个$prices = array('Tires' => 100, 'oil' => 10, 'Spark Plugs' => 4);
$item = each($prices);
print_r($item);
echo "
";
reset($prices);
while(list($a, $b) = each($prices)) {
echo "a:$a,b:$b
";
}
?>
each($prices)的值是4个key value 的数组,
Array ( [1] => 100 [value] => 100 [0] => Tires [key] => Tires )
而list($a, $b) = each($prices)) 为什么会把$item[key],$item[value]赋值给$a, $b,而不是$item[1],$item[value]。
list不应该是顺序赋值么。
网上找了,官方文档文档也找了,都没有准确答案,各位同学求解额
回复讨论(解决方案)
有两个可能你没看到
1.
list() only works on numerical arrays and assumes the numerical indices start at 0.
也就是,优先使用的是数字索引的值。
2.
list() assigns the values starting with the right-most parameter.
从参数列表的最右边开始赋值,所以$b 被赋值 0索引的值,也就是Tires ,然后$a被赋值1索引的值,所以是100
观察如下事实:
list($a, $b) = array('a', 'b');echo "a:$a b:$b\n"; //输出 a:a b:blist($a, $b) = array(1 => 'a', 0 => 'b');echo "a:$a b:$b\n"; //输出 a:b b:alist($a, $b) = array('a'=>'a', 'b'=>'b');echo "a:$a b:$b\n"; //输出 a: b:错误信息: Undefined offset: 1 Undefined offset: 0
可知 list 是按参数列表的序号依次从数组中提取相应的下标元素的
即列表中的变量的值就是数组下标的值,而与数组中下标的排列次序无关
那么特别的指出“从参数列表的最右边开始赋值”的意义何在呢?
请看这样的写法
list($a[$b][$c], $b, $c) = array('a', 'b', 'c');print_r($a);
(
[b] => Array
(
[c] => a
)
)
由于 $c、$b 先于 $a 赋值,所以在向 $a[$b][$c] 赋值的时候不会出错
感谢上面两位同学,
主要是这句话确实看掉了,
list() only works on numerical arrays and assumes the numerical indices start at 0.
list() 只工作于 索引从 0 开始的 数值数组

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV
