Php 检查所有按键排列的数组值是否为空的更好方法?

Php 检查所有按键排列的数组值是否为空的更好方法?,php,arrays,optimization,key,Php,Arrays,Optimization,Key,我创建了一个函数来检查给定键的所有值是否为空。它的工作很好,但我想知道,如果这个功能可以优化或减少 function array_key_empty($array, $key) { if (is_array($array)) { foreach ($array as $item) { if (array_key_exists($key, $item)) { if (!empty(trim($item[$key])))

我创建了一个函数来检查给定键的所有值是否为空。它的工作很好,但我想知道,如果这个功能可以优化或减少

function array_key_empty($array, $key)
{
    if (is_array($array)) {
        foreach ($array as $item) {
            if (array_key_exists($key, $item)) {
                if (!empty(trim($item[$key]))) {
                    return false;
                }
            }
        }
    }

    return true;
}
示例:

$array = [
    ['code' => '', 'description' => 'Oh there is a beautiful product !', 'price' => 10],
    ['code' => '', 'description' => 'Another beautiful product', 'price' => 20],
    ['code' => '', 'description' => 'Hey where will you stop ?!', 'price' => 30]
];

array_key_empty($array, 'code'); // true because all code are empty

$array = [
    ['code' => 'Yup !', 'description' => 'Oh there is a beautiful product !', 'price' => 10],
    ['code' => '', 'description' => 'Another beautiful product', 'price' => 20],
    ['code' => '', 'description' => 'Hey where will you stop ?!', 'price' => 30]
];

array_key_empty($array, 'code'); // false because Yup...

您可以按如下方式进行操作:-

if(count(array_filter( array_map('trim',array_column($array,'code'))))==0){
  echo "all values are empty";
}

输出:-

您可以按如下方式执行:-

if(count(array_filter( array_map('trim',array_column($array,'code'))))==0){
  echo "all values are empty";
}

输出:-

您可以将函数简化为一行,如下所示:

<?php

$array = [
    ['code' => '', 'description' => 'Oh there is a beautiful product !', 'price' => 10],
    ['code' => '', 'description' => 'Another beautiful product', 'price' => 20],
    ['code' => '', 'description' => 'Hey where will you stop ?!', 'price' => 30]
];


function array_key_empty($array, $key)
{
     return is_array($array) && empty(array_map('trim', array_filter(array_column($array, $key))));
}

echo "<pre>";
print_r(array_key_empty($array, 'code'));

您可以将函数简化为一行,如下所示:

<?php

$array = [
    ['code' => '', 'description' => 'Oh there is a beautiful product !', 'price' => 10],
    ['code' => '', 'description' => 'Another beautiful product', 'price' => 20],
    ['code' => '', 'description' => 'Hey where will you stop ?!', 'price' => 30]
];


function array_key_empty($array, $key)
{
     return is_array($array) && empty(array_map('trim', array_filter(array_column($array, $key))));
}

echo "<pre>";
print_r(array_key_empty($array, 'code'));

我投票结束这个问题,因为它应该发布在Ooops上。对不起,我忘记了codereview!我投票结束这个问题,因为它应该发布在Ooops上。对不起,我忘记了codereview!谢谢我需要修整每一个值,在这种情况下,如果一个值包含空格,它就不会有空。too@Damosse31马上检查!谢谢你,伙计!我只需要检查数组是否给出以避免警告,但它是完美的@Damosse31检查,如果有任何问题,请告诉我,否则别忘了将答案标记为已接受。谢谢!我需要修整每一个值,在这种情况下,如果一个值包含空格,它就不会有空。too@Damosse31马上检查!谢谢你,伙计!我只需要检查数组是否给出以避免警告,但它是完美的@Damosse31检查,如果有任何问题,请告诉我,否则不要忘记将答案标记为已接受。谢谢