0

配列の部分を数えるにはどうすればよいですか?例えば:

配列:

[name] => Michael
[surname] => Hadfield
[midname] => Olsow
[email] => mh@mail.com
[phone] => 3342020

[midname]と[phone]を除く配列フィールドをカウントしたいので、結果は3になります。

また、この配列から配列を作成して結果を取得したいと思います。

[name] => Michael
[surname] => Hadfield
[email] => mh@mail.com

出来ますか?

4

3 に答える 3

1

あなたはこのようなことを試すことができます:

$keys_to_exclude = array( 'midname', 'phone');
$new_array = array_diff_key( $original_array, array_flip( $keys_to_exclude));
echo count( $new_array);
print_r( $new_array);

この入力配列を使用すると、次のようになります。

$original_array = array( 
    'name' => 'Michael',
    'surname' => 'Hadfield',
    'midname' => 'Olsow',
    'email' => 'mh@mail.com',
    'phone' => 3342020
);

目的の出力、つまりecho count();プリントを取得する必要が3あり、結果$new_arrayは次のようになります。

Array
(
    [name] => Michael
    [surname] => Hadfield
    [email] => mh@mail.com
)
于 2013-03-13T01:29:11.177 に答える
0
  1. ループを使用して、必要な部分をカウントします

  2. 結果に.6を掛けcount($array)ます(カウントするパーツが常に5つと3つあると仮定します)

    $count = count($array) * .6;

于 2013-03-13T01:19:16.000 に答える
0

いつでも配列をコピーし、2つのインデックスの設定を解除して、それを数えることができると思います。

$array_copy = $array;
unset($array_copy('midname')); // Note unsetting a non-existent key does NOT throw an error.
unset($array_copy('phone'));
echo count($array_copy);
于 2013-03-13T01:22:07.200 に答える