2017-05-26 61 views
1

如何從這個數組:從陣列中獲取DATAS與PHP

Array 
(
    [2017-04-10] => 0 
    [2017-04-11] => 95 
    [2017-04-12] => 101.67 
) 

我能得到這樣的:

$dates = "2017-04-10, 2017-04-11, 2017-04-12"; 
$price = "0, 95, 101.67"; 

感謝。

+1

使用''array_keys'和array_values''implode' –

回答

3

這裏我們使用array_keysarray_valuesimplode

1.array_keys陣列的返回鍵

2.array_values陣列的返回值

3.implode加入陣列a glue

Try this code snippet here

<?php 

ini_set('display_errors', 1); 

$array=Array 
(
    "2017-04-10" => 0, 
    "2017-04-11" => 95, 
    "2017-04-12" => 101.67 
); 
echo $dates=implode(", ", array_keys($array)); 
echo PHP_EOL; 
echo $price=implode(", ", array_values($array)); 
+0

你好,對於日期,我怎麼能有這樣的:「 」2017年4月10日「, 」2017年4月11日「,「2017-04 -12「'從你的例子? –

+1

@qatari你可以這樣做https://eval.in/805894 –

2
$data = ['2017-04-10' => 0, '2017-04-11' => 95, '2017-04-12' => 101.67]; 
$dates = implode(',', array_keys($data)); 
$prices = implode(',', array_values($data)); 
-1

以前的答案是definetly最簡潔的。但是,如果你需要做的任何數據操作(如逃避分隔符,或在報價封裝,或更改日期格式或添加貨幣符號),這可能是最靈活的...

foreach($arr as $date => $val) { 
    $datestr .= $date.','; 
    $valstr .= $val.','; 
} 

如果你需要剪掉後昏迷,你可以做

$datestr = rtrim($datestr,','); 
$valstr = rtrim($valstr,','); 
0

這幾個頁面上的答案不必要的來電array_values()。我認爲海報只是在回答他們的問題。你可以省略這個額外的函數調用,並達到相同的結果:

方法:

$array=[ 
    "2017-04-10" => 0, 
    "2017-04-11" => 95, 
    "2017-04-12" => 101.67 
    ]; 
$dates=implode(', ',array_keys($array)); // 2017-04-10, 2017-04-11, 2017-04-12 
$price=implode(', ',$array);    // 0, 95, 101.67 

這是最瘦的,最有效的回答你的問題。