操作数组值

时间:2013-05-27 22:47:00

标签: php

最简单的方法是获取一些看起来像这样的$ _POST textinput数据:

Array
(
    [0] => string() "The Black Keys - Gold On the Ceiling
    Angeline - Blackout
    Allele - Closure
    etc"
)

把它变成这个:

Array
(
    [0] => string() 'artist:"The Black Keys" track:"Gold On the Ceiling"'
    [1] => string() 'artist:"Angeline"  track"Blackout"'
    [2] => string() 'artist:"Allele"  track"Closure"'
    etc
)

3 个答案:

答案 0 :(得分:3)

您应该使用explode()。然后,如果您愿意,可以将其传递到list()。这样的事可能适合你:

$lines = explode('\n', $_POST['textinput']);

for($i = 0; $i < count($lines); $i++) {
    list($artist, $track) = explode(' - ', $lines[$i]);
    $processed_line = Array('artist' => $artist, 'track' => $track);
    $lines[$i] = $processed_line;
}

var_dump($lines); // Should output something like the example in your question

PHP.net上提供了explode()list()的优秀文档。

答案 1 :(得分:3)

您只需使用explode即可实现此目的。

行动准则:eval.in

$string = "The Black Keys - Gold On the Ceiling
    Angeline - Blackout
    Allele - Closure
    etc";
        print $string;

    $exploded_string = explode("\n",$string);

    foreach($exploded_string as $child_string){
    $array = explode(" - ",$child_string);
    $output[]= "artist:\"".trim($array[0])."\" track:\"".trim($array[1])."\"";
    }
        print_r($output);

希望这会有所帮助。

答案 2 :(得分:0)

var_dump可能就是你要找的东西。 explodeimplode非常方便