PHP menentukan sama ada tatasusunan dua dimensi menyimpan nilai yang sama?
过去多啦不再A梦
过去多啦不再A梦 2017-05-27 17:43:19
0
2
730
  1. Tentukan sama ada tatasusunan adalah sama berdasarkan berbilang kunci

  2. Untuk baris yang sama, tambahkan nilai

  3. Ini adalah idea saya Satukan kunci dan gunakannya sebagai satu kunci Kemudian anda boleh menilai hanya berdasarkan satu kunci Adakah anda mempunyai kaedah lain?

<?php

$test = [
    [
        'name' : 'a',
        'age' : 12,
        'number' : 11,
        'score' : 50,
    ],
    [
        'name' : 'a',
        'age' : 12,
        'number' : 11,
        'score' : 30,
    ],
    [
        'name' : 'b',
        'age' : 12,
        'number' : 12,
        'score' : 50,
    ],
]

Sebagai contoh, untuk tatasusunan seperti ini, semak sama ada ia diulang berdasarkan umur nombor nama Jika ia diulang, tambahkan markah.

过去多啦不再A梦
过去多啦不再A梦

membalas semua(2)
滿天的星座

Terima kasih atas jemputan!

    <?php

    $test = [
        [
            'name'   => 'a',
            'age'    => 12,
            'number' => 11,
            'score'  => 50,
        ],
        [
            'name'   => 'a',
            'age'    => 12,
            'number' => 11,
            'score'  => 30,
        ],
        [
            'name'   => 'b',
            'age'    => 12,
            'number' => 12,
            'score'  => 50,
        ]
    ];
    
    $arr = array();
    foreach($test as $val) {
        $key = $val['name'] . '-' . $val['age'] . '-' . $val['number'];
        $arr[$key]['name']    = $val['name'];
        $arr[$key]['age']     = $val['age'];
        $arr[$key]['number']  = $val['number'];
        $arr[$key]['score']  += $val['score'];
    }
    
    var_dump("<pre>", array_values($arr));die;
世界只因有你

Abang, saya tulis cara paling mudah untuk buang berat, ambil dan guna.

function uniqueArr($arr){
    $returnArr=[];
    
    //分隔符
    $separator="~!#!!#~#!!";
    //排序
    sort($arr);
    
    //去重
    foreach($arr as $value){
        $k=$value['name'].$separator.$value['number'].$separator.$value['age'];
        $returnArr[$k]=[
            'name'=>$value['name'],
            'number'=>$value['number'],
            'age'=>$value['age']
        ];//这里是去重
        $returnArr[$k]['score']+=$value['score'];//这里是累加
    }
    return $returnArr;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan