在php數組中分為數組值與數組key,下面小編來給大家總結一下在php中數組值常用的操作方法包括有:數組中加入數值、判斷 數組中的數值、刪除特定數組值等有需要的同學可參考。
php刪除特定數組值
首先
代碼如下 復制代碼 var_dump($context['linktree']);得到
代碼如下 復制代碼 array(3) {我要去掉中間那個。
用:unset($context['linktree']['1']);
結果:
代碼如下 復制代碼array(2) {
[0]=>
array(2) {
["url"]=>
string(52) “http://127.0.0.1/testforum.cityofsteam.com/index.php”
["name"]=>
string(28) “City of Steam Official Forum”
}
[2]=>
array(2) {
["url"]=>
string(62) “http://127.0.0.1/testforum.cityofsteam.com/index.php?board=4.0″
["name"]=>
string(12) “Announcement”
}
}
就少了一個[1]
讓這中間的1自動編號:
代碼如下 復制代碼
Array ( [0] => apple [1] => banana [3] => dog )
但是這種方法的最大缺點是沒有重建數組索引,就是說,數組的第三個元素沒了。
經過查資料後,原來PHP提供了這個功能,只不過很間接。這個函數是array_splice()。
為了使用方便,我封裝成了一個函數,方便大家使用:
<?php
function array_remove(&$arr, $offset)
{
array_splice($arr, $offset, 1);
}
$arr = array('apple','banana','cat','dog');
array_remove($arr, 2);
print_r($arr);
?>
經過測試可以知道,2的位置這個元素被真正的刪除了,並且重新建立了索引。
程序運行結果:
代碼如下 復制代碼Array ( [0] => apple [1] => banana [2] => dog )
php判斷 數組中的數值
有專門的函數,不要用for循環,系統函數能實現快速搜索:
in_array
(PHP 4, PHP 5)
in_array — 檢查數組中是否存在某個值
說明
bool in_array ( mixed $needle, array $haystack [, bool $strict] )
在 haystack 中搜索 needle,如果找到則返回 TRUE,否則返回 FALSE。
如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同。
注意: 如果 needle 是字符串,則比較是區分大小寫的。
注意: 在 PHP 版本 4.2.0 之前,needle 不允許是一個數組。
例 292. in_array() 例子
代碼如下 復制代碼 <?php第二個條件失敗,因為 in_array() 是區分大小寫的,所以以上程序顯示為:
Got Irix
例 293. in_array() 嚴格類型檢查例子
代碼如下 復制代碼<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
echo "'12.4' found with strict checkn";
}
if (in_array(1.13, $a, true)) {
echo "1.13 found with strict checkn";
}
?>
上例將輸出:
1.13 found with strict check
例 294. in_array() 中用數組作為 needle
代碼如下 復制代碼<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' was foundn";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was foundn";
}
if (in_array('o', $a)) {
echo "'o' was foundn";
}
?>
上例將輸出:
'ph' was found
'o' was found
向一個數組中加入數值
我們可以通過函數來實現,將一個或多個元素插入到數組中去,也可以直接添加進去。
(1)向數組中直接添加數據,新元素的下標是從原數組下標最大值之後開始的。
(2)array_unshift()函數在數組的開頭添加一個或多個元素。
語法如下:
int array_unshift ( array &array, mixed var [,mixed ...]) ;
array_unshift()將傳入的元素插入到array數組的開頭。元素是作為整體被插入的,傳入元素將保持同樣的順序。所有的數值鍵名將從0開始重新計數,文字鍵名保持不變。
(3)array_push()函數將一個或多個單元添加到數組的末尾。
語法:
int array_push ( array &array, mixed var [, mixed ...]) ;
array_push()將array當成一個棧,並將傳入的變量添加到array的末尾。該函數返回數組新的單元總數。向數組中添加數據的示例如下。
示例: