簡體   English   中英

使用PHP從數組中獲取數據

[英]Get datas from an array with 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";

謝謝。

只需使用array_keysarray_valuesimplode

  1. array_keys()將從數組中獲取所有鍵作為新數組。

  2. array_values()將從數組中獲取所有值作為新數組。

  3. implode()會將您的數組轉換為字符串,並用逗號分隔符分隔。

implode(', ', array_keys($data));
implode(', ', array_values($data));

在這里,我們使用array_keysarray_valuesimplode

1. array_keys返回數組的鍵

2. array_values返回數組的值

3.a glue implode連接陣列

在此處嘗試此代碼段

<?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));
$data = ['2017-04-10' => 0, '2017-04-11' => 95, '2017-04-12' => 101.67];
$dates = implode(',', array_keys($data));
$prices = implode(',', array_values($data));

此頁面上的幾個答案不必要地調用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

這是對您問題的最精簡,最有效的回答。

前面的答案絕對是最簡潔的。 但是,如果您需要對數據進行任何處理(例如轉義定界符,封裝在引號中,更改日期格式或添加貨幣符號),則這可能是最靈活的...

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

如果您需要修剪拖尾昏迷,可以這樣做

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM