大佬教程收集整理的这篇文章主要介绍了php – 使用DOT Notations键数组从多维数组中获取选定列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$users = Array ( [0] => Array ( [id] => 16 [name] => Dr. Arti Luthra [email] => artiluthra@dsingh.com [@R_874_11064@er] => female [mobile] => 123456789 [status] => 0 [addresses] => Array ( [0] => Array ( [id] => 16 [clinic_name] => Luthra MeDical Center [address] => A-65/2,Meera Bhagh [contact_no] => 2342345234 [formatted_address] => A-65/2,Meera Bhagh Rohini,West Delhi,Delhi [timings] => Array ( [0] => Array ( [start] => 09:00 AM [end] => 02:00 PM ) [1] => Array ( [start] => 05:00 PM [end] => 08:00 PM ) ) ) [1] => Array ( [id] => 17 [clinic_name] => Luthra MeDical Center [address] => A-65/2,Chanakyapuri [contact_no] => 123456789 [formatted_address] => A-65/2,Chanakyapuri Chanakyapuri,South Delhi,Delhi [timings] => Array ( [0] => Array ( [start] => 09:00 AM [end] => 02:00 PM ) ) ) ) ) [1] => Array ( [id] => 39 [name] => Sudhir Seth [email] => sudhirseth@gmail.com [@R_874_11064@er] => male [mobile] => 65565656565 [status] => 0 [addresses] => Array ( [0] => Array ( [id] => 54 [clinic_name] => Dr. Sudhir Seth's Orthopoint [address] => D-595,Chittranjan Park,Landmark: Besides Deshbandhu College,Delhi [contact_no] => [formatted_address] => D-595,Delhi Greater Kailash,Delhi [timings] => Array ( [0] => Array ( [start] => 10:30 AM [end] => 01:00 PM ) [1] => Array ( [start] => 06:00 PM [end] => 09:00 PM ) ) ) [1] => Array ( [id] => 55 [clinic_name] => Fortis C-Doc [address] => B-16,Chirag Enclave,Nehru Place. Landmark: Opp. to Nehru Place,Delhi [contact_no] => [formatted_address] => B-16,Delhi Lajpat Nagar,Delhi [timings] => Array ( [0] => Array ( [start] => 09:00 AM [end] => 11:00 AM ) ) ) ) ) )
我想使用点符号来获取所选键
getKeys($用户,阵列( ‘名称’,‘电子邮件’,‘addresses.address’,‘addresses.clinic_name’,‘addresses.timings.start’))
使用上面的getKeys()方法,输出应该是:
Array ( [0] => Array ( [name] => Dr. Arti Luthra [email] => artiluthra@dsingh.com [addresses] => Array ( [0] => Array ( [clinic_name] => Luthra MeDical Center [address] => A-65/2,Meera Bhagh [timings] => Array ( [0] => Array ( [start] => 09:00 AM ) [1] => Array ( [start] => 05:00 PM ) ) ) [1] => Array ( [clinic_name] => Luthra MeDical Center [address] => A-65/2,Chanakyapuri [timings] => Array ( [0] => Array ( [start] => 09:00 AM ) ) ) ) ) [1] => Array ( [name] => Sudhir Seth [email] => sudhirseth@gmail.com [addresses] => Array ( [0] => Array ( [clinic_name] => Dr. Sudhir Seth's Orthopoint [address] => D-595,Delhi [timings] => Array ( [0] => Array ( [start] => 10:30 AM ) [1] => Array ( [start] => 06:00 PM ) ) ) [1] => Array ( [clinic_name] => Fortis C-Doc [address] => B-16,Delhi [timings] => Array ( [0] => Array ( [start] => 09:00 AM ) ) ) ) ) )
还有什么有趣的json为json例如:
php中的JsonPath – https://github.com/Skyscanner/JsonPath-PHP
@H_261_4@myqsl中的JsonPath – https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html但是,不幸的是,对于php阵列,这项技术还没有实现.
编写自己的库(phpPath)是个好点!
/** * Search values by phpPath * * @param array $aData * @param String|array $phpPath * @param array &$aReturn * @return array */ function getKeys($aData,$phpPath = [],&$aReturn = []) { //Support arrays of $phpPath if (is_array($phpPath)) { foreach ($phpPath as $path) { getKeys($aData,$path,$aReturn); } return $aReturn; } //Get next sought-for key $aParts = explode('.',$phpPath); $sNeedle = array_shift($aParts); $sRemain = implode('.',$aParts); foreach ($aData as $k => $v) { //skip numeric keys //@todo need to thinking about //needs to add * (wildcard) into phpPath for that purpose if (is_numeric($k) && $phpPath) { getKeys($v,$phpPath,$aReturn[$k]); conTinue; } //Is it key that we want if ($k !== $sNeedlE) { conTinue; } //checking needs deeper search if (is_array($v) && $sRemain) { getKeys($v,$sRemain,$aReturn[$k]); conTinue; } //Need to save fully-qualified found value $aReturn[$k] = $v; break; } return $aReturn; }
使用示例:
var_dump( getKeys($users,array( 'name','email','addresses.address','addresses.clinic_name','addresses.timings.start' )) );
以上是大佬教程为你收集整理的php – 使用DOT Notations键数组从多维数组中获取选定列全部内容,希望文章能够帮你解决php – 使用DOT Notations键数组从多维数组中获取选定列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。