非常感谢你的时间。我正在开发一个PHP项目,我希望更新数组的值。让我举例说明你可以更好地理解它。
第一个数组看起来像
array(30) {
[10]=>
array(2) {
["date"]=>
string(6) "May 17"
["value"]=>
int(0)
}
[11]=>
array(2) {
["date"]=>
string(6) "May 18"
["value"]=>
int(0)
}
[13]=>
array(2) {
["date"]=>
string(6) "May 20"
["value"]=>
int(0)
}
[14]=>
array(2) {
["date"]=>
string(6) "May 21"
["value"]=>
int(0)
}
}
第二个数组看起来像
array(3) {
[0]=>
array(2) {
["date"]=>
string(6) "May 17"
["value"]=>
string(3) "821"
}
[1]=>
array(2) {
["date"]=>
string(6) "May 17"
["value"]=>
string(3) "822"
}
[2]=>
array(2) {
["date"]=>
string(6) "May 21"
["value"]=>
string(3) "830"
}
}
现在我想要在第一个数组中替换May 17和May 21的值。所以它可能看起来像
array(30) {
[9]=>
array(2) {
["date"]=>
string(6) "May 16"
["value"]=>
int(0)
}
[10]=>
array(2) {
["date"]=>
string(6) "May 17"
["value"]=>
string(3) "821"
}
[11]=>
array(2) {
["date"]=>
string(6) "May 18"
["value"]=>
int(0)
}
[12]=>
array(2) {
["date"]=>
string(6) "May 19"
["value"]=>
int(0)
}
[13]=>
array(2) {
["date"]=>
string(6) "May 20"
["value"]=>
int(0)
}
[14]=>
array(2) {
["date"]=>
string(6) "May 21"
["value"]=>
string(3) "830"
}
如果我可以在5月17日显示2而不是实际值,那将是很好的,因为在第二个数组中有5个17出现。
答案 0 :(得分:1)
您可以比较两个数组中的日期,如下所示,并在if case中添加所需的值。
foreach ($array1 as $key => $value) {
foreach ($array2 as $key2 => $arr) {
if($value["date"] == $arr["date"]) {
//add the desired values here like this, this will add the $arr['value'] to the first array
$array1[$key]["value"] = $arr["value"]
}
}
}
希望它能解决你的问题。
答案 1 :(得分:0)
你可以迭代第一个数组,在foreach循环中传递它作为参考,并检查第二个数组中的常用值,如下所示
foreach($array1 as &$arr)
{
foreach ($array2 as $subarray) {
if ($subarray['date'] == $arr['date'] ) {
$arr['value'] = $subarray['value'];
print_r("adsfg");
}
}
}
你会得到你想要的结果。