0

私は次の配列を持っていて、それをphpでループして、「タイプ」のリストを生成し、その数を数えようとしています。Type がキーですが、Call、To-do、Meeting、Proposal などの固有の値があります。私の目標は、次の出力を得ることです。

Call 2
To-do 1
Meeting 3
Proposal 4

上記は、次の配列から出力される値ではありませんが、私が達成しようとしていることを理解してもらいたいと思います。助けてください!

Array (
    [0] => Array (
        [0] => Call
        [Type] => Call
        [1] => fxxxx@xxxxentllc.com
        [EmailAddress] => xxxxr@xxxxentllc.com
        [2] => 3xxxx00
        [Phone] => 31xxxx00
        [3] => 31xxxx871
        [MobilePhone] => 31xxxx871
        [4] => 102795
        [CustomerID] => 102795
        [5] => Nortxxxxal
        [Company] => Noxxxxal
        [6] => Frank
        [FirstName] => Frank
        [7] => Syxxxxer
        [LastName] => Sxxxxter
        [8] => 3
        [Priority] => 3
        [9] => invite to Haxxxxales for lunch
        [Details] => invite to Hafxxxxales for lunch
        [10] => 4503
        [ActivityID] => 4503
        [11] => 05/23/13
        [DueDate] => 05/23/13
    )
    [1] => Array (
        [0] => To-do
        [Type] => To-do
        [1] => fsxxxxer@summxxxxntllc.com
        [EmailAddress] => fsxxxxer@summixxxxtllc.com
        [2] => 315xxxx000
        [Phone] => 3154xxxx0
        [3] => 315xxxx1
        [MobilePhone] => 315xxxx1
        [4] => 102795
        [CustomerID] => 102795
        [5] => Norxxxxl
        [Company] => Norxxxxcal
        [6] => Frxxxxk
        [FirstName] => Fxxxxk
        [7] => Sxxxxr
        [LastName] => Syxxxxer
        [8] => 3
        [Priority] => 3
        [9] => find out who contact is for xxxxdical center
        [Details] => find out who contact is foxxxxcal center
        [10] => 4504
        [ActivityID] => 4504
        [11] => 05/23/13
        [DueDate] => 05/23/13
    )
)
4

6 に答える 6

1

次の行に沿ったもの:

foreach ($array as $key => $value) {
 if (isset($result[$key])) {
  $result[$key]++;
 } else {
 $result[$key] = 1;
 }
}

多次元配列の場合は、それぞれに別の配列を入れるだけですが、それでアイデアが得られるはずです

于 2013-05-22T23:18:57.280 に答える
0

私は次の行に沿って何かをします:

$your_array = /* Your Array */
$types_count = array();
foreach ($your_array as $type_array){
    $types_count[$type_array['Type']]++;
}
于 2013-05-22T23:27:16.563 に答える
0
$types = array();
foreach($array as $item) {
    isset(${$item['Type']}) ? ${$item['Type']}++ : ${$item['Type']} = 1;
    if(!in_array($item['Type'], $types) {
        $types[] = $item['Type'];
}
foreach($types as $type) {
    echo "$type ${$type}\n";
}
于 2013-05-22T23:20:05.240 に答える
0

配列をループして、各発生をカウントできると思います

$Call = 0;
$To_do = 0;
$Meeting = 0;
$Proposal = 0;
foreach($array as $data)
{
    if($data['Type'] == 'Call')
    {
        $Call++;
    } else if($data['Type'] == 'To-do')
    {
        $To_do++;
    } else if($data['Type'] == 'Meeting')
    {
        $Meeting++;
    } else if($data['Type'] == 'Proposal')
    {
        $Proposal++;
    }
}

このようにして、各変数$Call $To_do $Meeting $Proposalにその相対カウントを格納します

于 2013-05-22T23:24:25.947 に答える
0

(array_count_values($array)); を使用できます。 http://php.net/manual/en/function.array-count-values.php これにより、配列内のすべてのキーのカウントが得られます。

特定のキーのみが必要な場合は、 foreach ループを使用します

ペトロスが言及したのは、それを行うための最良の方法です。

于 2013-05-22T23:24:56.447 に答える