導航:首頁 > 編程語言 > php判斷是關聯數組

php判斷是關聯數組

發布時間:2024-02-23 10:41:24

php 關聯數組操作太麻煩,試試 WPJAM Basic 內置的數組處理函數

PHP 有很多非常好用的數組處理函數,PHP 數組函數官方文檔都有 80 多個,但是在使用過程,有一些數組的操作使用比較多,我就把這些函數整理成工具函數,然後整合到 WPJAM Basic 中,方便自己的二次開放時候使用,現在整理放出來,如果你和我一樣基於 WPJAM Basic 進行二次開發,也可以使用:

PHP 從關聯數組中移除指定的鍵值對,一般使用 unset 函數,比如:

如果要移除多個鍵值對,就要調用多次的 unset 函數,所以就合並成一個函數 :

這樣就可以通過下面方式移除鍵值對了:

如果僅僅移除一個鍵值對,還可以直接傳遞字元串:

我們使用 array_filter 對數組進行過濾的時候,是不會則戚空遞歸調用的,意思如果其中元素也是數組的時候,是不會進行同樣的過濾的操作。

輸出結果為:

但是我們在一些數據處理的時候,比如後台欄位提交的時候,我們希望過濾掉 null 的值,如果元素也是一個關聯數組的時候,我們希望關聯數組元素中的 null 的值也會過濾掉。所以我們就寫了 wpjam_array_filter 這個函數,實現 array_filter 遞歸調用:

同樣的數組:

輸出結果為:

PHP 的 array_filter() 函數讓我們可以通過回調函數來過濾數組,但是返回的是過濾後的數組,但是很多時候,我們只是簡單的要求 返回過濾之後數組的第一個元素

使用非常簡單的:

如果我們要合並的數組是多維的關聯數組,那麼使用 array_merge_recursive() 函數進行合並的話,不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸合並成一個數組。

輸出結果:

其實我們希望子數組裡面的相同的值覆蓋,據此我們寫了一個函數,用來深度合並多維數組:

相同的數組進行合並:

得到的結果是:

一般不推薦使用 wpjam_array_merge 對多維索引數組進行合並。

要從關聯數組中移除並返回指定的鍵值,一般需要兩步操作,先取出,孫瞎然後 unset 數組中的鍵值對:

如果每次都這么操作,有點煩人,所以就把這兩個步驟合成一個函數,並且還可以設置數組中無此鍵對應的元素的時候的默認值。

然後直接調用即可:

PHP 關聯數組可以通過三種方式插入新元素:

由此可見,關聯數組插入元素是無法指定位置的,只能插在最前或者最後面,所以這個函數就是實現 向關聯數組插入 元素時候指定的 Key 之前

比如下面在 $columns 的 'author' 之前插入 ['page_title'=>'頁仔戚面標題'] :

❷ php 判斷數組里是否有某個值

可以直接使用php內置函數in_array()來實現判斷。php in_array 函數用於檢查數組中是否存在某個值,如果存在,則返回true,否則返回false。

大致的編程思路:

1、所用到的函數:php in_array() 檢查數組中是否存在某個值;in_array檢查數組中是否存在某個值。

2、基本語法:bool in_array(mixed $needle,array $haystack,bool $strict=FALSE)

3、基本用法:在 haystack 中搜索 needle。

needle 是必需的。因為規定要在數組搜索的值。如果是字元串,則比較是區分大小寫的。

haystack 是必需的。因為規定要搜索的數組。

(2)php判斷是關聯數組擴展閱讀:

PHP原始為Personal Home Page的縮寫,已經正式更名為 "PHP: Hypertext Preprocessor"。PHP 語言作為當今最熱門的網站程序開發語言,它具有成本低、速度快、可移植性好、 內置豐富的函數庫等優點,因此被越來越多的企業應用於網站開發中。

PHP其特點是具有公開的源代碼, 在程序設計上與通用型語言,如C語言相似性較高,因此在操作過程中簡單易懂,可操作性強。同時,PHP語言具有較高的數據傳送處理水平和輸出水平,可以廣泛應用在Windows系統及各類Web伺服器中。


❸ PHP判斷數組是關聯數組還是數值數組

判斷一個PHP數組是關聯數組還是數字數組的函數
function is_assoc($arr) {
return array_keys($arr) !== range(0, count($arr) - 1);
}
測試
$arr = array(1, 2, 3, 4, 5, 6, 7);
print is_assoc($arr); // 輸出false
$arr = array("foo" => "bar", "bar" => "foo");
print is_assoc($arr); // 輸出true
$arr = array("foo" => "bar", 3, 4, 5);
print is_assoc($arr); // 輸出true

❹ php 判斷兩個數組是否有交集

在PHP中求數組的交集,我們可以與PHP給我們提供的現成函數:array_intersect(),其用法格式為:

array array_intersect(array array1,array array2[,arrayN…])

根據上述的語法格式,我們來寫一個例子:

1 <?php
2 $fruit1 = array("Apple","Banana","Orange");
3 $fruit2 = array("Pear","Apple","Grape");
4 $fruit3 = array("Watermelon","Orange","Apple");
5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出結果:
8 // Array ( [0] => Apple )
9 ?>

本例子將返回在$fruit1數組中出現且在$fruit2和$fruit3中也出現的所有水果的名子。

使用array_intersect()函數時要注意:只有在兩個元素相等且具有相同的數據類型時,array_intersect()函數才會認
為它們是相同的,否則不能進行交集計算。array_intersect()函數返回一個保留了鍵的數組,只由第一個數組中出現的且在其它數組中都出現的
值組成。

若要求關聯數組的交集,請使用array_intersect_assoc()函數,給你個簡單的例子:

1 <?php
2 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
3 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
4 $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出:
8 // Array ( [red] => Apple )
9 ?>

array_intersect_assoc()函數語法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數組的鍵。因此,只有在第一個數組中出現,且在所有其他輸入數組中也出現的鍵/值對才返回到結果數組中。

❺ php判斷數組元素是否存在

1、採用in_array(value,array,type)

type 可選。如果設置該參數為 true,則檢查搜索的數據與數組的值的類型是否相同。

$arr = array('可以','如何','方法','知道','沒有','不要');
//in_array(value,array,type)
$isin = in_array("如何2",$arr);
if($isin){
echo "in====".$isin;
}else{
echo "out====".$isin;
}

2、

array_key_exists 'array_key_exists() 函數判斷某個數組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false。array_key_exists(key,array

3、array_search() 函數與 in_array() 一樣,在數組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。array_search(value,array,strict),當數據量比較大的時候,用array_key_exists比較合適,但佔用的內存比較大,

數組結構是: array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..),內存使用比值為1:2。
具體跟內部實現有關系,在php中第一種和第二種的數據結構類似,都是關聯數組。


閱讀全文

與php判斷是關聯數組相關的資料

熱點內容
app慕課在哪裡綁定微信 瀏覽:182
加密貨幣央行最新消息 瀏覽:971
伺服器L12是什麼意思 瀏覽:403
關於大海的英語電影 瀏覽:561
日本推理電影榜 瀏覽:571
快手上的影視小短片哪裡找的 瀏覽:57
大香蕉人在線觀看1 瀏覽:920
android獲得根目錄 瀏覽:95
文件目錄類命令有哪些 瀏覽:172
宅男午夜電影在線免費 瀏覽:222
大數據filetypepdf 瀏覽:6
高中作文app軟體哪個好排名 瀏覽:342
des演算法c語言代碼 瀏覽:581
夫妻看的電影有助於感情 瀏覽:794
安卓不能掛後台是什麼回事 瀏覽:601
安卓手機叫什麼才會有聲音回你 瀏覽:821
在線觀看的那種電影 瀏覽:72
韓國18電影 瀏覽:314
外摻和內摻的演算法 瀏覽:327
製冷壓縮機高低壓不穩 瀏覽:485