我有这样的数组 阵列
$array1 = array('key1'=>5,'key2'=>1,'key3'=>1);
预期输出
$array1 = array('key1'=>5);
另一个考试 阵列
$array2 = array('key1'=>1,'key2'=>1,'key3'=>1);
预期输出
$array2 = array('key1'=>1);
另一个示例数组
$array3 = array('key1'=>1,'key2'=>1,'key3'=>2,'key4'=>1);
预期输出
$array3 = array('key3'=>2);
我的病情是 如果数组中的值为1,则任何一个键值都是该数组的结果 如果除一个键值外,数组的值为1,则结果为特定键值
这可能吗?
答案 0 :(得分:0)
如果您特定于1个重复值,请尝试以下逻辑或 如果您正在查看最大值和密钥,如上所述@Phylogenesis使用this逻辑
$array1 = array('key1'=>5,'key2'=>1,'key3'=>1);
$array2 = array('key1'=>1,'key2'=>1,'key3'=>1);
$array3 = array('key1'=>1,'key2'=>1,'key3'=>2,'key4'=>1);
$array1 = filterArray($array1);
$array2 = filterArray($array2);
$array3 = filterArray($array3);
print_r($array1);
print_r($array2);
print_r($array3);
function filterArray($array)
{
$newArray = [];
if (in_array(1, array_values($array))) {
foreach ($array as $key => $val) {
if ($val != 1) {
$newArray[$key] = $val;
break;
}
}
if (empty($newArray)) {
$newArray['key1'] = 1;
}
}
return $newArray;
}