0

PHPに次のような2次元配列があります。

Array (
[0] => Array
    (
        [id] => 205
        [name] => Data Export
        [description] => A function to export survey results.
        [is_active] => Y
    )

...

[99] => Array
    (
        [id] => 206
        [name] => Data Import
        [description] => 
        [is_active] => N
    )
)

配列内の説明がないアイテムの数を確認したいと思います。

私がこれまでに持っている関数は次のようになります...

function array_count ($array, $key) {
    // count($array[*][$key])
    $c = 0;
    foreach ($array as $i=>$subarray) {
        $c += ($subarray[$key]!='');
    }
    return $c;
}

...これを行うためのより良い方法はありますか?

...これを拡張して、値との一致をカウントするにはどうすればよいですか?$array[*][is_active]=='Y'

4

4 に答える 4

2

私はこれがうまくいくかもしれないと思っています:

function array_count ($array, $key, $value = NULL) {
    // count($array[*][$key])
    $c = 0;
    if (is_null($value)) {
        foreach ($array as $i=>$subarray) {
            $c += ($subarray[$key]!='');
        }
    } else {
        foreach ($array as $i=>$subarray) {
            $c += ($subarray[$key]==$value);
        }
    }
    return $c;
}

このようにして、次のことができます。

// assume $foo is an array of 100 arrays, 
// of which 20 sub-arrays have a blank 'description', 
// and 35 have 'is_active' set to 'Y' and 65 set to 'N'

echo array_count ($foo, 'description'); // ... 80 non-blanks
echo array_count ($foo, 'is_active'); // ... 100 non-blanks
echo array_count ($foo, 'is_active', 'Y'); // ... 35 matches
echo array_count ($foo, 'description', ''); // ... 20 is-blanks
于 2012-11-11T09:19:44.427 に答える
1
function array_count ($array, $key, $value) {
    // count($array[*][$key])
    $c = 0;
    foreach ($array as $i=>$subarray) {
        $c += strcmp( $subarray[$key], $value) ) === 0 ? 1 : 0;
    }
    return $c;
}
于 2012-11-11T08:35:02.027 に答える
0

空の配列をチェックしています:

if( 0 < ( $cnt = count($array) ) )
{
 echo "Your array size is: $cnt";
}
else
 echo "Too bad, your array is empty :(";
于 2012-11-11T08:59:48.523 に答える
-3

使用する:-

foreach ($array as $i=>$value) {


//from this you get the all whole array description value then apply if else condition to         short out

echo $_POST[$i]['description']."</br>";

    }
于 2012-11-11T08:34:03.683 に答える