切片和计数

时间:2013-03-13 01:17:55

标签: php arrays

如何计算数组的各个部分?例如:

阵列:

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

我想计算除[midname]和[phone]之外的数组字段 所以结果应该是3

而且我想从这个数组创建数组,结果为:

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

有可能吗?

3 个答案:

答案 0 :(得分: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
);

您应该获得your desired output,即echo count();打印3,结果为$new_array

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

答案 1 :(得分:0)

  1. 使用循环计算您想要的部分

  2. count($array)的结果乘以.6(假设总有五个部分和三个要计算的数量)

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

答案 2 :(得分: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);