php array colum,php5.5新數組函數array_column使用

array_column 用于獲取二維數組中的元素(PHP 5 >= 5.5.0),但我們有時候需要在低版本中使用,那么就可以使用下面的代碼即可

PHP5.5發布了,其中增加了一個新的數組函數array_column,感覺不錯的!但是低版本PHP要使用,得自己實現:

參考地址:https://wiki.php.net/rfc/array_column

if(!function_exists('array_column')){

function array_column($input, $columnKey, $indexKey=null){

$columnKeyIsNumber????? = (is_numeric($columnKey)) ? true : false;

$indexKeyIsNull???????? = (is_null($indexKey)) ? true : false;

$indexKeyIsNumber?????? = (is_numeric($indexKey)) ? true : false;

$result???????????????? = array();

foreach((array)$input as $key=>$row){

if($columnKeyIsNumber){

$tmp??????????? = array_slice($row, $columnKey, 1);

$tmp??????????? = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;

}else{

$tmp??????????? = isset($row[$columnKey]) ? $row[$columnKey] : null;

}

if(!$indexKeyIsNull){

if($indexKeyIsNumber){

$key??????? = array_slice($row, $indexKey, 1);

$key??????? = (is_array($key) && !empty($key)) ? current($key) : null;

$key??????? = is_null($key) ? 0 : $key;

}else{

$key??????? = isset($row[$indexKey]) ? $row[$indexKey] : 0;

}

}

$result[$key]?????? = $tmp;

}

return $result;

}

}

// 使用例子

$records = array(

array(

'id' => 2135,

'first_name' => 'John',

'last_name' => 'Doe'

),

array(

'id' => 3245,

'first_name' => 'Sally',

'last_name' => 'Smith'

),

array(

'id' => 5342,

'first_name' => 'Jane',

'last_name' => 'Jones'

),

array(

'id' => 5623,

'first_name' => 'Peter',

'last_name' => 'Doe'

)

);

$firstNames = array_column($records, 'first_name');

print_r($firstNames);

/*

Array

(

[0] => John

[1] => Sally

[2] => Jane

[3] => Peter

)

*/

$records = array(

array(1, 'John', 'Doe'),

array(2, 'Sally', 'Smith'),

array(3, 'Jane', 'Jones')

);

$lastNames = array_column($records, 2);

print_r($lastNames);

/*

Array

(

[0] => Doe

[1] => Smith

[2] => Jones

)

*/

$mismatchedColumns = array(

array(

'a' => 'foo',

'b' => 'bar',

'e' => 'baz'

),

array(

'a' => 'qux',

'c' => 'quux',

'd' => 'corge'

),

array(

'a' => 'grault',

'b' => 'garply',

'e' => 'waldo'

),

);

$foo = array_column($mismatchedColumns, 'a', 'b');

print_r($foo);

/*

Array

(

[bar] => foo

[0] => qux

[garply] => grault

)

*/

array_column 用于獲取二維數組中的元素(PHP 5 >= 5.5.0)

// Array representing a possible record set returned from a database

$records = array(

array(

'id' => 2135,

'first_name' => 'John',

'last_name' => 'Doe',

),

array(

'id' => 3245,

'first_name' => 'Sally',

'last_name' => 'Smith',

),

array(

'id' => 5342,

'first_name' => 'Jane',

'last_name' => 'Jones',

),

array(

'id' => 5623,

'first_name' => 'Peter',

'last_name' => 'Doe',

)

);

$first_names = array_column($records, 'first_name');

print_r($first_names);

?>

Array

(

[0] => John

[1] => Sally

[2] => Jane

[3] => Peter

)<?php

// Using the $records array from Example #1

$last_names = array_column($records, 'last_name', 'id');

print_r($last_names);

?>

Array

(

[2135] => Doe

[3245] => Smith

[5342] => Jones

[5623] => Doe

)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530134.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530134.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530134.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 將字符串打亂,PHP內部實現打亂字符串順序函數str_shuffle的方法

前言2019年春節已過&#xff0c;今天是上班第一天&#xff0c;還得翻一翻之前沒有看完的PHP源碼。今天聊的是字符串順序打亂函數str_shuffle。這個函數本身使用頻率并不高。但是&#xff0c;其內部實現還是非常有趣的。str_shuffle() 函數隨機地打亂字符串中的所有字符。要注意…

php+js+return+true,js中return、return false、return true的區別

1.語法及返回方式①返回控制與函數結果語法為:return 表達式;語句結果函數的執行,返回調用函數,而且把表達式的值作為函數結果返回出去②返回控制無函數結果語法為:return;在大多數情況下,為事件處理函數如果讓其返回false,可以防止默認的事件行為.例如,默認情況下,點擊一個標簽…

php strlen遇0截斷,聊下php下的截斷問題

0x01 起因有天在群里說起上傳的%00截斷的一些問題&#xff0c;就想起之前自己在這個問題踩過坑&#xff0c;想起了自己曾經的flag說要寫文章&#xff0c;一直沒寫&#xff0c;現在來填坑了。0x02 經過源碼理解1234//test.phpinclude "1.txt\000.jpg";?>1234//1.t…

test.php.bak,記一次phpmyadmin 4.8.1 遠程文件包含漏洞(BUUCTF web)

題目很簡單&#xff0c;一個滑稽打開源碼&#xff0c;發現存在source.php文件于是訪問文件&#xff0c;發現出現一串php源碼提示存在hint.php&#xff0c;于是訪問發現一句話flag not here, and flag in ffffllllaaaagggg再回過頭來觀察source.php明顯是一道代碼審計的問題&…

php中files和FILRS,php獲取文件內容最后一行示例

php獲取文件內容最后一行示例復制代碼 代碼如下:$rs README.md;$fp fopen($rs, r);fseek($fp,-1,SEEK_END);$s ;while(($c fgetc($fp)) ! false){if($c "\n" && $s) break;$s $c . $s;fseek($fp, -2, SEEK_CUR);}fclose($fp);echo $s;exit;時間&#x…

php 實現貪吃蛇游戲,C++實現簡單貪吃蛇游戲

我大概在一個多月前把自己上學期寫的c代碼的貪吃蛇游戲push到csdn上&#xff0c;并且說c風格的貪吃蛇寫起來有些麻煩(貪吃蛇游戲的c語言實現)&#xff0c;準備用面向對象的c再寫一遍。現在我們專業恰好剛教完了c&#xff0c;學校也布置了一道簡單的貪吃蛇的編程題目&#xff0c…

java中的斜杠和反斜杠,老生常談java路徑中的反斜杠和斜杠的區別

JAVA中的斜杠有正斜杠與反斜杠之分&#xff0c;正斜杠&#xff0c;一般就叫做斜杠&#xff0c;符號為“/”&#xff1b;反斜杠的符號為“\”。斜杠(/)在JAVA中沒有什么特別的意義&#xff0c;就是代表一個字符‘/;反斜杠(\)則不然&#xff0c;它和緊跟著它的那個字符構成轉義字…

小程序 php cookie,微信小程序使用Cookie

微信小程序使用Cookie微信小程序不支持Cookie,因此,需要借助小程序的數據緩存來實現Cookie.環境: mpvue fly.js登錄成功后,在處理登錄驗證的method里,加入以下內容保存Cookie:wx.setStorageSync("sessionid",response.headers["set-cookie"][0])我對fly.j…

php對象好用嗎,在數據庫中使用對象的好處_php

我們都知道如何從mysql獲取我們需要的行(記錄)&#xff0c;讀取數據&#xff0c;然后存取一些改動。很明顯也很直接&#xff0c;在這個過程背后也沒有什么拐彎抹角的。然而對于我們使用面對對象的程序設計(OOP)來管理我們數據庫中的數據時&#xff0c;這個過程就需要大大改進一…

linux apache php顯示源碼,linux 源碼安裝apache PHP 問題

sudo ./configure --prefix/var/php --with-apxs2/usr/local/apache2/bin/apxsLoadModule php5_module modules/libphp5.soDirectoryIndex index.html index.html.var .phpa-bash-3.2$ pwd/usr/local/apache2/htdocs-bash-3.2$ cat info.phpphpinfo();?>打開info.ph…

mysql臨時表的的理解,如何理解存儲過程中已存在的mysql臨時表?

它在創建表時具有IF NOT EXISTS(13.1.17. CREATE TABLE Syntax)選項,在這種情況下可以使用.例&#xff1a;DELIMITER $$CREATE PROCEDURE temp_sp1()BEGINCREATE TEMPORARY TABLE IF NOT EXISTS temp_table (col2 int(11) DEFAULT NULL,col3 int(11) DEFAULT NULL);INSERT INTO…

python 發郵件 抄送,Python調用outlook發送郵件,發送給多人、抄送給多人并帶上附件...

我的報告目錄具體解釋在代碼中有詳細注釋import win32com.client as win32import datetime, osaddressee test01qq.com;test02jd.com#收件人郵箱列表cc test02163.com;test03alibaba.com#抄送人郵件列表mail_path os.path.join(rC:\Users\songlihui\PycharmProjects\test001…

php阻止輸入sql,在PHP中全面阻止SQL注入式攻擊之三

一、 建立一個安全抽象層我們并不建議你手工地把前面介紹的技術應用于每一個用戶輸入的實例中&#xff0c;而是強烈推薦你為此創建一個抽象層。一個簡單的抽象是把你的校驗方案加入到一個函數中&#xff0c;并且針對用戶輸入的每一項調用這個函數。當然&#xff0c;我們還可以創…

Oracle12081,【Oracle介質】Oracle 12C Linux x86-64 最新OPatch patch 6880880 12.2.0.1.7

天萃荷凈Linux x86-64 補丁程序6880880: OPatch patch of version 12.2.0.1.7 for Oracle software releases 12.1.0.x (installer) and 12.2.0.x (AUG 2016)上次更新時間 2016-8-26 上午1:48 (8 天前)產品 Oracle Global Lifecycle Management OPatc…

如何使用oracle ebs,Oracle EBS進行集成的實際操作步驟

我們今天主要向大家介紹的是如何使用WebService和Oracle EBS進行集成&#xff0c;以及在使用WebService和Oracle EBS進行集成時&#xff0c;所需要的一些項目的描述&#xff0c;以下的文章就是對相關內容的描述。架構系統從總體上分為兩部分&#xff0c;一部為企業的EBS及接口系…

linux nls_lang oracle,linux操作系統環境變量LANG和NLS_LANG的區別

例如&#xff1a;復制代碼代碼如下:export LANGzh_CN.GB2312export NLS_LANGAMERICAN_AMERICA.ZHS16GBK$export LANGzh_CN.GB2312$date2012年 11月 27日 星期二 16:20:35 CST顯示是中文界面。復制代碼代碼如下:$export NLS_LANGAMERICAN_AMERICA.ZHS16GBK$sqlplus / as sysdbaS…

oracle監聽 3個配置文件,Oracle 11g 監聽 配置修改 說明

這里我們看2個比較常用的操作。1. 停止寫listener log在某些特定的場合可能會有這樣的需求。控制這個功能的參數是LOG_STATUS。 官網對這個參數的說明&#xff1a;To turn listenerlogging on or off.--在OS層面直接使用&#xff1a;lsnrctl SET LOG_STATUS {on | off}--在LSNR…

suse linux如何重置密碼忘記,SUSE?Linux忘記root密碼的處理辦法

GRUB修改法注意&#xff1a;此辦法僅適用SLES8、SLES9&#xff0c;不適用于SLES10&#xff0c;SLES10請用光盤修改法。此辦法不適合用于grub啟動超時時間為0的機器&#xff0c;因為grub超時時間設置為0后&#xff0c;不能編輯grub選項&#xff0c;此類機器必須使用光盤或網絡引…

linux怎么啟動端口服務,Linux 根據端口快速停止服務并啟動的辦法

ll /proc/7167結果為:[rootcentos76 deploy]# ll /proc/7167total 0dr-xr-xr-x 2 root root 0 Jun 25 11:13 attr-rw-r--r-- 1 root root 0 Jun 25 11:13 autogroup-r-------- 1 root root 0 Jun 25 11:13 auxv-r--r--r-- 1 root root 0 Jun 25 11:05 cgroup--w------- 1 root …

linux進程增刪改查,iptables的增刪改查

iptables是自帶的防火墻&#xff0c;功能強大&#xff0c;學習起來需要一段時間&#xff0c;下面是一些習iptables的時候的記錄。如果iptables不熟悉的話可以用apf&#xff0c;是一款基于iptables的防火墻&#xff0c;挺好用的。一,安裝并啟動防火墻[root ~]# /etc/init.d/ipta…