国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php獲取二維數組中key鍵值的例子

2024-09-04 11:46:37
字體:
來源:轉載
供稿:網友

二維數組中一般會有多個key了,如果我們要獲得指定key的值可以和小編一起來看一篇php獲取二維數組中key鍵值的例子,希望文章能夠幫助到各位朋友.

在處理php數組的時候,有一種需求特別的頻繁,如下二維數組:

  1. $arr = array
  2. 1=>array
  3. 'id' => 5, 
  4. 'name' => '張三' 
  5. ), 
  6. 2=>array
  7. 'id' => 6, 
  8. 'name' => '李四' 
  9. ); 

目的就是要取到key為name的集合,得到這個結果:

  1. $arr2 = array
  2.  
  3. 0=>'張三'
  4.  
  5. 1=>'李四' 
  6.  
  7. ); 

這里有幾種方法:

1:最簡單的,foreach遍歷數組:

  1. foreach ($arr as $key => $value) { 
  2.  
  3. $arr2[] = $value['name']; 
  4.  

2:代碼量稍微少一點的代碼,使用了array_map這個php方法:

$arr2 = array_map('array_shift',$arr);

意為把$arr數組的每一項值的開頭的值移出,并返回被移出的每一項值中被移出的值,注意此時新數組$arr2的鍵仍是原數組$arr的鍵

2.1:在方法2的基礎上,可以稍微開一下腦洞,如果需要獲取的是二維數組的每一項的開頭列或結尾列,也可以這樣做:

$arr2 = array_map('end',$arr);

哈哈,也是很方便的

3:還可以使用array_reduce方法,不過代碼略多,不過這個方法的想象空間(針對別的數組取值操作)還是蠻大的:

$arr2 = array_reduce($arr, create_function('$result, $v', '$result[] = $v["name"];return $result;'));

array_reduce方法用回調函數迭代地將對數組的值進行操作,而create_function用于一個匿名方法做回調用,這個匿名方法的參數$result為上一次迭代產生的值,$v是當前的值,內部實現既為獲取到數組$arr每一項的”name”的值并push到新$result數組;

4:最后這個終極方法實在是太爽了,一個方法就搞定,而且非常靈活:

$arr2 = array_column($arr, 'name');

第二個參數為想要獲取的那一列的鍵名,是不是很方便呢,不過這個方法有個限制,就是php版本必須 >= 5.5.0,在陳舊項目中使用這個方法還是得斟酌一下哈

隨機獲取二維數組中的一個值.

  1. $arr1 = array
  2.             'p1'=>array('ky_d'=>'福建省泉州市豐澤區華大街道1','ky_s'=>'350503005'), 
  3.             'p2'=>array('ky_d'=>'福建省泉州市豐澤區華大街道2','ky_s'=>'350503006'), 
  4.             'p3'=>array('ky_d'=>'福建省泉州市豐澤區華大街道3','ky_s'=>'350503007'//Vevb.com 
  5.                    
  6.         ); 
  7.           $temp = array_rand($arr1,1);   
  8.       //    print_r($temp); 
  9.           echo $arr1[$temp]['ky_d'].':'.$arr1[$temp]['ky_s']; 

獲取一維或多維數組某個特定鍵(數組下標)的所有值.

author:yangyu@sina.cn

description:根據某一特定鍵(下標)取出一維或多維數組的所有值,不用循環的理由是考慮大數組的效率,把數組序列化,然后根據序列化結構的特點提取需要的字符串.

  1. */ 
  2. function array_get_by_key(array $array$string){ 
  3. if (!trim($string)) return false; 
  4. preg_match_all("//"$string/";/w{1}:(?:/d+:|)(.*?);/", serialize($array), $res); 
  5. return $res[1]; 
  6.  
  7. $r = array('id'=> 1, 's'=> 23, 'a' => array('s' => 123, array(1, 2, 's' => "asdasdgsadggsadg"))); 
  8. echo '<pre>'//Vevb.com 
  9. print_r (array_get_by_key($r's')); 
  10. /* 
  11. result: 
  12. Array 
  13. ( 
  14. [0] => 23 
  15. [1] => 123 
  16. [2] => "asdasdgsadggsadg" 
  17. ) 
  18. */ 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延川县| 杂多县| 海南省| 丰宁| 伊宁县| 丹凤县| 无锡市| 和龙市| 光山县| 贵德县| 亳州市| 高雄县| 清流县| 金寨县| 永泰县| 延吉市| 临夏县| 武宣县| 周宁县| 万山特区| 蓝山县| 社旗县| 连山| 攀枝花市| 娄烦县| 沁阳市| 饶平县| 武宁县| 获嘉县| 宜宾市| 陵水| 龙州县| 临沂市| 桓台县| 泰顺县| 军事| 嵊泗县| 璧山县| 波密县| 鄂托克前旗| 建湖县|