PHP 想从1组二维数组里取1个下标的值去其他数组查询另1个下标的值,然后用查询出来值替换原来二维数组里的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 想从1组二维数组里取1个下标的值去其他数组查询另1个下标的值,然后用查询出来值替换原来二维数组里的相关的知识,希望对你有一定的参考价值。
$arr = array(1=>array('id'=>1,'pass'=>'1'),'2'=>array('id'=>2,'pass'=>2));
$row = array(1=>'abc',2=>'def');
foreach($arr as $cc)
$id = $row[$cc['pass']];
$cc['pass'] = $id; //替换pass的值
做到这里我再打印$arr的值还是没变~应该怎么操作~求解
foreach($arr as $cc) 这是值传递,改为地址传递即可 foreach($arr as &$cc)
完整代码如下:
<?php
$arr = array(1 => array(\'id\' => 1, \'pass\' => \'1\'), \'2\' => array(\'id\' => 2,\'pass\' => 2));
$row = array(1 => \'abc\', 2 => \'def\');
foreach ($arr as &$cc) //此处修改为地址传递
$id = $row[$cc[\'pass\']];
$cc[\'pass\'] = $id; //替换pass的值
echo \'<pre>\';
print_r($arr);
echo \'</pre>\';
?> 参考技术A 你替换的是$cc的值,并没有替换$arr的值,所以还是原来的值没变
你可以把他存放到另一个数组里面显示,或者在操作完后再把$arr覆盖掉
$arr = array(1=>array('id'=>1,'pass'=>'1'),'2'=>array('id'=>2,'pass'=>2));
$row = array(1=>'abc',2=>'def');
$arr_set=array();
foreach($arr as $cc)
$id = $row[$cc['pass']];
$cc['pass'] = $id;
$arr_set[]=$cc;
print_r($arr_set); 参考技术B 首先说明一点foreach($arr as $cc)后$cc与$arr是两个不同的数组。$arr不会随$cc的值改变而改变。所以你打印出来的$arr的值不变。我帮你修改了。
$arr = array(1=>array('id'=>1,'pass'=>'1'),'2'=>array('id'=>2,'pass'=>2));
$row = array(1=>'abc',2=>'def');
foreach($arr as $key=> $cc)
$id = $row[$cc['pass']];
$arr[$key]['pass'] = $id; //替换pass的值
print_r($arr); 参考技术C foreach出来的$cc是一个副本,改变这个$arr不会有任何影响。使用引用就行了。
foreach($arr as &$cc)
php 二维数组过滤相同的值
Array
(
[0] => Array
(
[names] => abc
[staus] => 1
)
[1] => Array
(
[names] => ddd
[staus] => 1
)
[2] => Array
(
[names] => ddd
[staus] => 1
)
)
如何过滤相同的值
变成这样
Array
(
[0] => Array
(
[names] => abc
[staus] => 1
)
[1] => Array
(
[names] => ddd
[staus] => 1
)
)
$s=array();//你的数组
foreach($s as $k=>$v)
if(in_array($v['name'],$tmp))
unset($s[$k]);
$tmp[]=$v['name'];
var_dump($s); 参考技术B function multi_unique($array)
foreach ($array as $k=>$na)
$new[$k] = serialize($na);
$uniq = array_unique($new);
foreach($uniq as $k=>$ser)
$new1[$k] = unserialize($ser);
return ($new1);
本回答被提问者采纳 参考技术C 恩恩额 不错的啊
以上是关于PHP 想从1组二维数组里取1个下标的值去其他数组查询另1个下标的值,然后用查询出来值替换原来二维数组里的的主要内容,如果未能解决你的问题,请参考以下文章
php 下标用变量赋值问题 $id=1(随机得到); $arr是二维数组,$arr[id][name] 我需要得到这个值。