php foreach 修改数组不生效?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php foreach 修改数组不生效?相关的知识,希望对你有一定的参考价值。
foreach ($task_list as &$item)
foreach ($level_list as $ite)
if ($item['level'] == $ite['level'])
$item['levelname'] = $ite['name'];
foreach ($cate_list as $it)
if ($item['cid'] == $it['id'])
$item['name'] = $it['name'];
$item['ico'] = $it['ico'];
empty($item['name']) ? $item['name'] = $cate_list[0]['name'] :'';
empty($item['ico']) ? $item['ico'] = sp_config('web_logo') :'';
打印$item的值都改变了,但是为什么$task_list数组的值没有变呢?
$level_list = [["level"=>"1","name"=>"liming_l"],["level"=>"2","name"=>"ddd_l"],["level"=>"3","name"=>"sfsdfsd_l"]];
$cate_list = [["id"=>1,"ico"=>"001","name"=>"liming_c"],["id"=>2,"ico"=>"002","name"=>"ddd_c"],["id"=>3,"ico"=>"003","name"=>"sfsdfsd_c"]];
foreach ($task_list as &$item)
foreach ($level_list as $ite)
if ($item['level'] == $ite['level'])
$item['levelname'] = $ite['name'];
foreach ($cate_list as $it)
if ($item['cid'] == $it['id'])
$item['name'] = $it['name'];
$item['ico'] = $it['ico'];
empty($item['name']) ? $item['name'] = $cate_list[0]['name'] :'';
empty($item['ico']) ? $item['ico'] = sp_config('web_logo') :'';
print_r($task_list);
Array ( [0] => Array ( [cid] => 1 [level] => 1 [name] => liming_c [levelname] => liming_l [ico] => 001 ) [1] => Array ( [cid] => 2 [level] => 2 [name] => ddd_c [levelname] => ddd_l [ico] => 002 ) [2] => Array ( [cid] => 3 [level] => 3 [name] => sfsdfsd_c [levelname] => sfsdfsd_l [ico] => 003 ) )
正常逻辑数组里的值是改变了的,如果没改变这个需要查询一下数组的值匹配了 参考技术B &$item 改 $item
解决修改 Linux 下的 PHP 环境变量不生效的方法
这个问题出现服务器有多个 PHP 版本,php -v
和phpinfo()
显示两个不同的版本
最近真的,都给朋友解决问题了。。。
phpinfo
查看的 php 版本是 7.2.6,到 bash 去使用php -v
查看的确是 5.4.2
直接上手先改环境变量,全局永久生效的那种~
vi /etc/profile
在最后加入对应的 PHP 路径
export PATH=$PATH:/usr/local/php/bin
保存,然后让配置生效
source /etc/profile
使用php -v
查看还是 5.4.2 的版本,环境变量还是指向旧的,没生效
这样,先查一下对应的 php.ini,使用命令,查到有 3 个 php.ini
$ find / -name php.ini
/usr/local/php/etc/php.ini
/usr/local/php7.0/etc/php.ini
/etc/php.ini
然后使用命令查看 PHP 加载的是哪个配置文件,这个获取的是系统内的 php.ini 的位置,不是 Apache 或者 Nginx 加载的 php.ini 文件
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
查找一下系统里的 PHP 相关目录
$ find / -name php
可以看到有一个/usr/bin/php
这个应该是服务器默认安装的 PHP
ok,使用命令删掉/usr/bin/php
文件夹
rm -rf /usr/bin/php
别滥用,别敲错,回车
再让配置生效一下
source /etc/profile
这样,在 Bash 里查看的 PHP 版本也就是使用phpinfo()
查看的版本了
php运行版本位置
以上是关于php foreach 修改数组不生效?的主要内容,如果未能解决你的问题,请参考以下文章