PHP数组有多行

时间:2014-10-20 10:11:41

标签: php arrays

我有一个类似于下面例子的数组。如何只获取第一行(音频文件路径)中的值?我已经尝试了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
"

}

3 个答案:

答案 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]))