2

個々の文字列だけでなくコンマ区切りの文字列を含む配列を取得し、コンマ区切りのアイテムを個々のアイテムに分解するにはどうすればよいですか? 例えば:

while(($row =  mysql_fetch_array($downloads_query))) {
        $product_array[] = $row['product']; 
    }

$product_array[]戻り値:

item 1: "10003"
item 2: "10016"
item 3: "10008, 10007, 10010"

$product_array が返すように、アイテム 3 を個々のアイテム 3、4、および 5 に分割するにはどうすればよいですか?

item 1: "10003"
item 2: "10016"
item 3: "10008"
item 4: "10007"
item 5: "10010"
4

8 に答える 8

1
while(($row =  mysql_fetch_array($downloads_query))) {
        if(strpos($row['product'],',') > -1){
                $product_array += explode(',',$row['product']);
        } else {
                $product_array[] = $row['product']; 
        }
    }

これが迅速な解決策です:)コンマがある場合、配列に追加する前にそれを爆発させます。

  • 他の人が myslq_ 関数が非推奨であることに気付くように..代わりに mysqli または PDO を使用することをお勧めします:)
于 2013-05-10T06:08:53.800 に答える
0

php でユーザーexplode()関数を使用して、戻り値の配列を にマージできます$product_array。このようなもの:

$product_array = array_merge(explode(',', $commaSeperatedArray), $product_array); 
于 2013-05-10T06:09:52.710 に答える
-1
$format_Arr = array("test1","test2,test2.1","test3","test4,test5,test6,test7");
$formated_arr = array();
foreach($format_Arr as $arr){
$arr1 = explode(",",$arr);
if(count($arr1)>1){
    $formated_arr = array_merge($formated_arr,explode(',',$arr));
}else{
    $formated_arr[]= $arr;
}
}
print_r($formated_arr);
于 2013-05-10T10:48:36.083 に答える
-1

テストされていませんが、ここに行きます。

function process_array($row)
{
    $result=array();
    $product=$row['product'];

    if(strpos($product, ',')!==false)
    {
        $result[]=explode(',', $product);
    }
    else
    {
        $result[]=$product;
    }

    return $result;
}

/////

$product_array=array();

while(($row =  mysql_fetch_array($downloads_query))) 
{
    $product_array=array_merge($product_array, proccess_array($row))
}

あなたはアイデアを得る...

于 2013-05-10T06:10:13.777 に答える