如果我有一个看起来像这样的数组$输出,我怎么能搜索数组并回显持续时间值,在这种情况下是30.持续时间并不总是关键[18].
Array
(
[16] => hasKeyframes : true
[17] => hasMetadata : true
[18] => duration : 30
[19] => audiosamplerate : 22000
[20] => audiodatarate : 68
[21] => datasize : 1103197
}
Run Code Online (Sandbox Code Playgroud)
试试这个功能:
function search_value($array, $key, $default_value = false)
{
foreach( $array as $value)
{
list($_key, $_val) = array_map('trim', explode(":", $value) );
if( strtolower($key) == strtolower($_key) )
return $_val;
}
return $default_value;
}
Run Code Online (Sandbox Code Playgroud)
像这样用它:
echo search_value( $output, 'duration', 0);
Run Code Online (Sandbox Code Playgroud)
但,就像@Lawrence指出,这将是MUCH,如果你改变你的阵列结构更简单:
$output= array(
'hasKeyframes'=>true,
'hasMetadata'=>true,
'duration'=>'30',
.
.
.
);
Run Code Online (Sandbox Code Playgroud)
这样,您只需检查密钥是否存在并获取该值:
echo (!array_key_exists('duration', $output) ? $output['duration'] : 0);
Run Code Online (Sandbox Code Playgroud)