『壹』 求教php二維數組根據某一元素刪除
<?php
$arr=array(
2=>array(
'catid'=>2,
'catdir'=>'notice',
),
5=>array(
'catid'=>5,
'catdir'=>'subject',
),
6=>array(
'catid'=>6,
'catdir'=>'news'
)
);
functionfindVal($arr,$dir){
foreach($arras$key=>$val){
if(in_array($dir,$val))
return$key;
}
}
functionarray_remove_by_key($arr,$key){
if(!array_key_exists($key,$arr)){
return$arr;
}
$keys=array_keys($arr);
$index=array_search($key,$keys);
if($index!==FALSE){
array_splice($arr,$index,1);
}
return$arr;
}
$keyz=findVal($arr,'subject');
print_r(array_remove_by_key($arr,$keyz));
?>
『貳』 php 刪除多維數組指定元素
foreach($data_arras$key=>$data){
if(in_array('id',array_keys($data))){
unset($data_arr[$key]['id']);
}
}
『叄』 php二維數組如何根據一個ID刪除一個元素
關鍵看你的二維數組的結果.
如果Id是下標並且是字元串,如下面的.
$demo = array('one'=>array(1,2,3),'two'=>array(3,4,5))
可以直接unset($demo['one']),
如果ID是下標並且直接是數值,則直接
unset($demo[1]);
如果ID是元素值,則沒有好的辦法,只能用for遍歷,找到再unset()
『肆』 如何添加、刪除PHP關聯數組
�嚳矗�憧梢醞�鄙�韃⑻畛涫�欏H綣�閼�詿�硎�炙饕��椋�憧贍芟朧褂孟允久��暮��爸煤妥芳釉�兀�鏰rray_push()和array_unshift()函數,但這些函數不能操作關聯數組。 2、刪除數組元素 如果要從數組中刪除一個元素,請使用unset()函數, 使用數字索引數組時,刪除數組元素的辦法更多,更靈活,可以使用array_shift()和array_pop()函數分別從數組的開頭和末尾刪除一個元素。 3、交換鍵和值 假設你想創建一個名叫$states的新數組,使用州府作為索引,使用州名作為關聯值,使用array_flip()函數很容易完成這個任務。 4、合並數組 假設前面的數組由一個基於Web的「FlashCard」服務使用,你想提供一種方法測試學生對美國各州首府的掌握情況,你可以使用array_merge()函數合並包含州和首府的數組。 5、編輯數組值 假設在數組中的數據包含大小寫錯誤,在插入到資料庫之前,你想糾正這些錯誤,你可以使用array_map()函數給每個數組元素應用一個回調。 6、按鍵對數組排序 FlashCard程序常常使用各種排序,如按字母順序排序,你可以使用ksort()函數按鍵對關聯數組進行排序。因為數組是通過參數傳遞給ksort()函數的,意味著你不再需要將排序結果分配給另一個變數。 7、隨機數組排序 在FlashCard程序中還涉及到另一種隨機排序技術,這時你要使用shuffle()函數實現數組項目的隨機排序。如果不需要打亂數組順序,你只是想隨機選擇一個值,那麼使用array_rand()函數即可。 8、確定鍵和值是否存在 你可以使用in_array()函數確定一個數組元素是否存在。 9、搜索數組 你可能想搜索數組資源,這樣用戶就可以方便地用一個特定的州府檢索關聯的州,可以通過array_search()函數實現數組搜索。 10、標准PHP庫 標准PHP庫(Standard PHP Library,SPL)為開發人員提供了許多數據結構,迭代器,介面,異常和其它以前PHP語言沒有的功能,使用這些功能可以通過面向對象的語法遍歷數組。
『伍』 php 刪除數組中指定的元素
array_splice函數可以刪除數組中的元素(只是該函數的功能之一),array_splice用法如下:
array_splice
—
把數組中的一部分去掉並用其它值取代
array array_splice( array &$input, int $offset[, int $length = 0 [, mixed $replacement ]] )把
input
數組中由offset
和
length指定的單元去掉,如果提供了
replacement
參數,則用其中的單元取代。
input:輸入的數組。
offset:如果
offset
為正,則從
input數組中該值指定的偏移量開始移除。如果
offset為負,則從
input
末尾倒數該值指定的偏移量開始移除。
length:如果省略
length,則移除數組中從offset到結尾的所有部分。
如果指定了
length並且為正值,則移除這么多單元。
如果指定了
length並且為負值,則移除從
offset
到數組末尾倒數length
為止中間所有的單元。
小竅門:當給出了replacement
時要移除從
offset到數組末尾所有單元時,用count($input)
作為
length。
replacement:如果給出了
replacement
數組,則被移除的單元被此數組中的單元替代。
示例,刪除數組$inputArr的第5~10個元素(從0開始數,包括第5個和第10個,共6個元素)
array_splice($inputArr,5,6);
『陸』 定義一個數組,找出下標為偶數的元素,從數組中刪除它們PHP
最好重新申請一個數組來保存刪除後的數組。
如果是C++的話,直接使用vector更簡單。
『柒』 PHP代碼實現:1)刪除整個數組2)刪除數組中指定的元素3)刪除重復的元素
$arr = array(1,2,4,2,0,9,8,5);//定義一個數組。
$arr1 = $arr; //定義另一個數組和上一個數組一樣。
//循環第一個數組讓後循環第二個數組 用第一個數組的每個值和第二個數組比較如果相同就刪除,最後輸出第二個數組就行了。
for($i = 0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++){
if($arr[$i] == $arr[$j])
unset($arr1[$i]);
}
}
echo'<pre>';
print_r($arr1);
第二 如果允許使用array_uniqe()函數的話,直接array_uniqe(直接寫數組名就ok)。
在PHP中可以使用內置函數array_unique()來直接刪除重復元素,也可以使用array_flip()函數來間接刪除重復元素。
1.array_unique()函數
array_unique()函數可以移除數組中的重復的值,並返回結果數組;當幾個數組元素的值相等時,只保留第一個元素,其他的元素被刪除。
代碼示例:
<?php$result1 = array("a" => "green", "red", "b" => "green", "blue",
"red");var_mp($result1);$result2 = array_unique($result1);var_mp($result2);?>
2.array_flip()函數
array_flip()是反轉數組鍵和值的函數,它有個特性就是如果數組中有二個值是一樣的,那麼反轉後會保留最後一個鍵和值,利用這個特性我們用他來間接的實現數組的去重。
代碼示例:
<?phpheader("content-type:text/html;
charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 輸出原始數組echo "原始數組
:";var_mp($a);// 。
通過使用翻轉鍵和值移除重復值$a = array_flip($a);
// 通過再次翻轉鍵和值來恢復數組元素$a = array_flip($a);// 重新排序數組鍵$a = array_values($a);// 輸出更新後的數組echo "更新數組 :";var_mp($a);?>
『捌』 php如何刪除數組中的某個元素用法總結
如果要在某個數組中刪除一個元素,可以直接用的unset,例子代碼:
<?php $arr = array('a','b','c','d'); print_r($arr); unset($arr[1]); print_r($arr); ?>
以上代碼輸出的結果如下:
E:\TEMP\文件\exp>a.phpArray( [0] => a [1] => b [2] => c [3] => d)Array( [0] => a [2] => c [3] => d)
也就是說,刪除了指定的元素,其它元素的序號是不改變的。
『玖』 php數組元素值的修改和刪除問題
刪除數組元素和刪除一個變數一樣
unset($strArray['key']);
更新是直接賦值
$strArray['key'] = 'new var';
=================
這種事情我做過, 關鍵是把 $strArray 放在文件中,以及對這個數組的操作.
1.存放,比如放在 strarray.php 中
$fp = fopen('strarray.php','w');
fwrite($fp,'<?php'."\n".'$strArray = '.var_export($strArray,1).";\n?>");
fclose($fp);
2. 讀取
include 'strarray.php';
3. 刪除
unset($strArray['key'])
====
要注意的是,如果使用函數來做這些操作,strArray是全局變數,在function中要有
global $strArray;
這句聲明
我試過使用這個方法來存放經緯度數據,好處是不用xml文件或資料庫,速度也非常快
『拾』 PHP 數組重組
很簡單,代碼如下:
//假設數組變數$array保存了當前數據
foreach($arrayas$key$value){//遍歷數組
//通過正則表達式來判斷是否為諸如1.x的下標
if(!preg_match('/./',$key)){
//刪除數組諸如下標為:1,2,3的數據
unset($array[$key]);
continue;
}
//通過.點來分割諸如1.x的下標
$array2=explode('.',$key);
//使用新數組來存儲數據
$array3[$array2[0]][$key]=$value;
}
//如果數組下標在排序上有任何顛倒可用ksort()[正序]或krsort()[倒序]來排序
ksort($array3);
//列印重組的數組效果如下
print_r($array3);
Array
(
[1] => Array
(
[1.1] => 美妝保養
[1.2] => 美容工具
[1.3] => 護膚保養
[1.4] => 美容化妝
[1.5] => 美發護發
)
[2] => Array
(
[2.1] => 香水須後水
[2.2] => 工具配件
)
)
如果還有任何問題,歡迎追問~