0
在下面的yaml文本中檢索兒童的名字哪裏暴露的是真的?如何根據條件提取Yaml的特定部分?
INPUT
parent:
child1:
units:
machine: 1
name: Cathy
relation: daughter
boolean: true
child2:
exposed: true
units:
machine: 2
name: Peter
relation: son
boolean: false
預期輸出
彼得
當前代碼
//input
$yaml = <<<EOD
parent:
child1:
units:
name: Cathy
relation: daughter
child2:
exposed: true
units:
name: Peter
relation: son
EOD;
//convert to array
$parsed = yaml_parse($yaml);
//get all values from specific key in a multidimensional array
var_dump(array_value_recursive('name', $parsed));
/**
* Get all values from specific key in a multidimensional array
*
* @param $key string
* @param $arr array
* @return null|string|array
*/
function array_value_recursive($key, array $arr){
$val = array();
array_walk_recursive($arr, function($v, $k) use($key, &$val){
if($k == $key) array_push($val, $v);
});
return count($val) > 1 ? $val : array_pop($val);
}
電流輸出
凱西 彼得
在上面的輸出,卡西是不需要的條目。 正確的輸出應該是彼得。
感謝提前:)