我在这里有一个数组:
$records = array(
array(
'id' => 2,
'first_name' => 'John',
'last_name' => 'Doe',
'num' => 123,
),
array(
'id' => 4,
'first_name' => 'Sally',
'last_name' => 'Smith',
'num' => 146,
),
array(
'id' => 8,
'first_name' => 'Jane',
'last_name' => 'Jones',
'num' => 253,
),
array(
'id' => 9,
'first_name' => 'Peter',
'last_name' => 'Doe',
'num' => 632,
)
);
如何在数组$results
中搜索ID 8并修改num
?例如,查找ID = 8的数组并将{5}添加到num
?修改后的$result
数组将为:
$records = array(
array(
'id' => 2,
'first_name' => 'John',
'last_name' => 'Doe',
'num' => 123,
),
array(
'id' => 4,
'first_name' => 'Sally',
'last_name' => 'Smith',
'num' => 146,
),
array(
'id' => 8,
'first_name' => 'Jane',
'last_name' => 'Jones',
'num' => 258,
),
array(
'id' => 9,
'first_name' => 'Peter',
'last_name' => 'Doe',
'num' => 632,
)
);
答案 0 :(得分:2)
这一个线程技巧将解决您的问题,
$records[array_search(8, array_column($records, 'id'))]['num'] += 5;
print_r($records);
array_search - 在数组中搜索给定值,如果成功则返回第一个相应的键
array_column - 返回输入数组中单个列的值
以下是demo。
答案 1 :(得分:1)
这是实现输出的一种方法
include_path= ".;D:\xampp\htdocs\"
答案 2 :(得分:1)
使用这个......
foreach ($records as $key => $value) {
$search_value = "";
$search_value = array_search("8",$value);
if($search_value!="")
$value["num"] = $value["num"]+5;
$result[] = $value;
}
print_r($result);
答案 3 :(得分:1)
试试这个
使用&$r
数组通过引用传递,这样您就可以在没有键的情况下更新for循环中的值
foreach($records as &$r){
if($r['id'] == 8){
$r['num'] = 258;
}
}
答案 4 :(得分:1)
function AddNum($arr,$id,$number)
{
foreach($arr as $key=>$value)
{
if($value['id']==$id)
{
$arr[$key]['num']+=$number;
return $arr;
}
}
}
那应该有效:) 例如:
$x=AddNum($records,2,2);
print_r($x);
答案 5 :(得分:1)
foreach($records as $key => $data) {
if(in_array(8,$data)) {
$records[$key]['num'] = 253+50;
}
}
echo "<pre>";
print_r($records);
&#13;
答案 6 :(得分:0)
<?php
$records = array(
array(
'id' => 2,
'first_name' => 'John',
'last_name' => 'Doe',
'num' => 123,
),
array(
'id' => 4,
'first_name' => 'Sally',
'last_name' => 'Smith',
'num' => 146,
),
array(
'id' => 8,
'first_name' => 'Jane',
'last_name' => 'Jones',
'num' => 253,
),
array(
'id' => 9,
'first_name' => 'Peter',
'last_name' => 'Doe',
'num' => 632,
));
$id2 = searchForId(8, $records);
function searchForId($id, $records) {
foreach ($records as $key => $val) {
if ($val['id'] === $id) {
$abc = $records[$key]['num'] = $val['num']+5;
echo "<pre>";
print_r($records);
}
}
return null;
}
?>