程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php數組值 增加 刪除 查找操作方法詳解

php數組值 增加 刪除 查找操作方法詳解

編輯:關於PHP編程

在php數組中分為數組值與數組key,下面小編來給大家總結一下在php中數組值常用的操作方法包括有:數組中加入數值、判斷 數組中的數值、刪除特定數組值等有需要的同學可參考。

php刪除特定數組值

首先

 代碼如下 復制代碼 var_dump($context['linktree']);

得到

 代碼如下 復制代碼 array(3) {
[0]=>
array(2) {
["url"]=>
string(52) “http://127.0.0.1/testforum.cityofsteam.com/index.php”
["name"]=>
string(28) “City of Steam Official Forum”
}
[1]=>
array(2) {
["url"]=>
string(55) “http://127.0.0.1/testforum.cityofsteam.com/index.php#c1″
["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”
}
}

我要去掉中間那個。

用: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
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

第二個條件失敗,因為 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的末尾。該函數返回數組新的單元總數。向數組中添加數據的示例如下。
示例:

 代碼如下 復制代碼 <?php
$shili = array (“1″,”2″,”3″,”4″) ;
$shili[]=5 ;                            //直接添加數據
print_r ( $shili ) ;
echo “<br>” ;
$shili2 = array (“m”,”n”) ;
array_unshift ($shili2,”o”,”p”) ;          //添加元素於數組的開頭
print_r ( $shili2 ) ;
echo “<br>” ;
$shili3 = array (“Php”) ;
array_push ($shili3, “MySQL”,”Apache”) ; //添加元素於數組的末尾
print_r ($shili3) ;
?>
結果為:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => o [1] => p [2] => m [3] => n )
Array ( [0] => Php [1] => MySQL [2] => Apache )

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved