【CodeBase】通过层级键在多维数组中获取目标值
2024-08-24 01:28:02
通过层级键在多维数组中获取目标值
/*
*Author : @YunGaZeon
*Date : 2017.08.09
*param data : Data Array
*param keys : Key level Array
*return : Array
*/
function findbykeys($data,$keys,$_index=0,&$_target_arr=[])
{
if($_index>(count($keys)-1))
return $_target_arr; foreach($data as $k=>$v)
{
if($k===$keys[$_index])
{
if($_index==(count($keys)-1))
$_target_arr[]=$v;
else
{
if(is_array($v))
findbykeys($v,$keys,++$_index,$_target_arr);
}
}
else
{
if(is_array($v))
findbykeys($v,$keys,$_index,$_target_arr);
}
}
return $_target_arr;
}
使用:获取京东某页评价中的所有图片链接
$data=file_get_contents('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment&productId=5045080&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1');
$data=iconv('GBK', 'UTF-8//TRANSLIT//IGNORE', $data);
preg_match('/^[^\(]+\(([\s\S]+)\);$/',$data,$data);
$data=$data[1];
$cm=json_decode($data,true);
$keys=['comments','images','imgUrl'];
var_dump(findbykeys($cm,$keys));
最新文章
- Linux Shell 截取字符串
- jQuery-H5-css3转盘抽奖-遁地龙卷风
- Xcode无法启动ios模拟器的问题
- yum安装高版本mysql(5.5)
- ctags 文章
- poj 1195 mobile phone
- hdu 1576 A/B
- python文件_读取
- NSInternalInconsistencyException attempt to delete row 2 from section 4 which only contains 0 rows before the update 问题原因
- 【20171028早】ubuntu 16.04 LTS 安装php遇到的问题
- char数组中除去某个元素
- JavaScript 中常见设计模式整理
- LeetCode--11_974_Subarray_Sums_Divisible_by_K
- Sublime插件:Terminal
- Hibernate从入门到了解
- java-16习题
- 『TensorFlow』分类问题与两种交叉熵
- c#: 简单的日志管理类(TextWriterTraceListener)
- 关闭Pycharm拼写检查
- 如何在ubuntu16上安装docker