在php中用条件组合一个数组中的值

时间:2017-07-06 07:52:28

标签: php arrays codeigniter

我有这样的数组 阵列

$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,则结果为特定键值

这可能吗?

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;
}