这是我的阵列:
$array= array(3) {
[0]=> array(3) { ["name"]=> "one" ["com"]=> "com1" ["id"]=> "1" }
[1]=> array(3) { ["name"]=> "two" ["com"]=> "com2" ["id"]=> "2" }
[2]=> array(3) { ["name"]=> "three" ["com"]=> "com3" ["id"]=> "3" }
我需要能够更改name和com的值以获取特定的id。我从Stack问题中尝试了一些例子:
1。Link1
foreach($array as &$value){
if($value['id'] == 1){
$value['name'] = 'test';
$value['com'] = 'test';
break; // Stop the loop after we've found the item
}
}
但它不起作用。没有错误但没有结果。
2。Link 2
同样,没有错误信息,但没有结果......
我还尝试了很多来自Stack的其他例子但是假的,最后写了一个问题..
买, P
答案 0 :(得分:1)
由于您没有更改数组值,这就是为什么它没有给您所需的输出。试试这个: -
foreach($array as $key => &$value){
if($key == 1){
$array[1]['name'] = 'test';// change value to original array
$array[1]['com'] = 'test'; //change value to original array
break; // Stop the loop after we've found the item
}
}
答案 1 :(得分:0)
for($i=0;$i<count($array);$i++) {
if($array[$i]['id'] == 1) {
$array[$i]['name'] = 'test';
$array[$i]['com'] = '';
break;
}
}
print_r($array);
答案 2 :(得分:0)
如果您能够在创建时更改数组,我建议将id转移到数组的密钥标识符。只会让生活变得更轻松:
$array[1]['name'] = 'test';
否则使用上面发布的for循环查找。 (右边的芒果)