簡體   English   中英

array_key_exists無法正常工作

[英]array_key_exists not working as expected

問題

我在使用PHP函數array_key_exists遇到麻煩。 即使我的數組具有鍵,該函數也始終返回false。 我想知道使用動態增長的數組是否存在問題。 我是PHP的新手,很抱歉,如果這個問題很煩人。

預期行為

如果數組具有鍵,我需要array_key_exists函數返回true。

我試圖解決的問題

我嘗試使用isset(CounterArray[$key])代替,但沒有成功。

我已經閱讀了有關特定功能的PHP文檔,並且還檢查了關於堆棧溢出的類似問題,但是沒有一個適合我的情況。 我為此花了大量時間可恥。

$values=[
        "a"=>100,
        "a"=>100,
        "a"=>100,
        "b"=>200,   
    ];


    $counterArray = array();

    foreach ($values as $key => $price) {

        if(!array_key_exists( $key , $counterArray))){
            $counterArray[$key]=$price;

        }else{

            $counterArray[$key] += $price;

        }
    }

您的$values數組包含相同鍵'a'重復項,它將被忽略。 因此, $counter_array最終將包含$values的精確副本。

聽起來$values應該是一個數組數組,例如:

$values = [
    ["a"=>100],
    ["a"=>100],
    ["a"=>100],
    ["b"=>200],
];

當然,您的循環將必須進行相應的更改:

foreach ($values as $a) {
    list( $key, $price ) = $a;
    // ...

這是因為您的實際數組在內部就像array(2){[“” a“] => int(100)[” b“] => int(200)當執行var_dump($ values)時,您將得到上面的輸出; 在你的代碼中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM