PHP,如何判斷一個array的key是自己填的還是自動產生的?

來源:互聯網
上載者:User
關鍵字 php
我想區分開不同的array分別處理,區分靠key的值是(通過array_push)自動產生的index還是自己填的(string之類的)index

甚至是混合的key

回複內容:

我想區分開不同的array分別處理,區分靠key的值是(通過array_push)自動產生的index還是自己填的(string之類的)index

甚至是混合的key

仔細想了下,題主的意思應該是想要區分數字數組還是索引數組吧?畢竟自動產生的key也是可以手動自己填出來的。

我常用的判斷是否為純數字數組(相當於其他語言的數組)的方法

function is_list($arr){    return is_array($arr) && ($arr == array() || array_keys($arr) === range(0,count($arr)-1) );}

判斷key的類型,array_push的key是int

真要查起來特別麻煩,判斷key類型沒用,畢竟自己也可以填int類型的key呀。
如果樓主真有這個需求,需要在項目初期就設定好,我舉一個簡單點的例子:
使用某個函數為數組填key,在填key的同時,做個記錄,然後...在你有這個需求的時候就可以查記錄了。
不知道其他人有沒有更好的方法了,我目前就想到了這個。

array 的key 如果是自動產生的話 那麼key 必須的int 數實值型別的,不過認為也能設定key 為 int 數實值型別
所以沒法判斷人為設定還是自動產生

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.