我有一个类似于下面例子的数组。如何只获取第一行(音频文件路径)中的值?我已经尝试了array_rand()
,它只给了我一个字母的价值。对不起,如果之前已经回答过,我自己找不到任何东西。提前谢谢。
Array
(
[0] => path/to/audiofile.mp3
3500440
audio/mpeg
[1] => path/to/anotheraudiofile.mp3
5661582
audio/mpeg
...
)
编辑:var_dump给了我这个:
array(2) {
[0]=>
string(98) "path/to/audiofile.mp3
3500440
audio/mpeg
"
[1]=>
string(95) "path/to/anotheraudiofile.mp3
5661582
audio/mpeg
"
}
答案 0 :(得分:3)
您是否尝试过线分割?
$tmp = explode(PHP_EOL, $myArray[0]);
$tmp = explode('"', $tmp[0]);
$path = $tmp[1];
答案 1 :(得分:2)
真正的解决方案是改变实际构建此数组的代码,但是,您可以使用几个数组函数(其中有很多)轻松地提取所需的代码:
$array[0] = explode(PHP_EOL, $array[0]);//PHP_EOL is the new-line character
echo $array[0][0];//get the first line
您可以像这样处理整个数组:
function extractFirstLine($val)
{
$val = explode(PHP_EOL, $val);
return $val[0];
}
$array = array_map('extractFirstLine', $array);
或者,从PHP 5.3开始,更常见的方法是:
$array = array_map(function($v)
{
$v = explode(PHP_EOL, $v);
return $v[0];
}, $array);
从PHP 5.4开始,你可以写得更短:
$array = array_map(function($v)
{
return (explode(PHP_EOL, $v))[0];
}, $array);
应该这样做(请注意,此代码未经测试,但如果某些内容不太正确,那么手册页应该可以帮助您。)
答案 2 :(得分:0)
B“意识到它取决于os行可能是不同的角色,你可以使用\ r \ n如果你使用win os $ Path = substr($ array [0],0,strpos(“\ in”,$ array [0]))