[英]array_key_exists not working as expected
我在使用PHP函数array_key_exists
遇到麻烦。 即使我的数组具有键,该函数也始终返回false。 我想知道使用动态增长的数组是否存在问题。 我是PHP的新手,很抱歉,如果这个问题很烦人。
如果数组具有键,我需要array_key_exists
函数返回true。
我尝试使用isset(CounterArray[$key])
代替,但没有成功。
我已经阅读了有关特定功能的PHP文档,并且还检查了关于堆栈溢出的类似问题,但是没有一个适合我的情况。 我为此花了大量时间可耻。
$values=[
"a"=>100,
"a"=>100,
"a"=>100,
"b"=>200,
];
$counterArray = array();
foreach ($values as $key => $price) {
if(!array_key_exists( $key , $counterArray))){
$counterArray[$key]=$price;
}else{
$counterArray[$key] += $price;
}
}
您的$values
数组包含相同键'a'
重复项,它将被忽略。 因此, $counter_array
最终将包含$values
的精确副本。
听起来$values
应该是一个数组数组,例如:
$values = [
["a"=>100],
["a"=>100],
["a"=>100],
["b"=>200],
];
当然,您的循环将必须进行相应的更改:
foreach ($values as $a) {
list( $key, $price ) = $a;
// ...
这是因为您的实际数组在内部就像array(2){[“” a“] => int(100)[” b“] => int(200)当执行var_dump($ values)时,您将得到上面的输出; 在你的代码中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.