使用PHP从数组中获取数据

时间:2017-05-26 10:53:03

标签: php arrays

如何从这个数组:

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";

感谢。

5 个答案:

答案 0 :(得分:3)

只需使用array_keysarray_values以及implode

  1. array_keys()将从数组中获取所有键作为新数组。

  2. array_values()会将所有值格式化为数组。

  3. implode()会将您的数组转换为以逗号分隔符分隔的字符串。

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

答案 1 :(得分:3)

我们正在使用array_keysarray_valuesimplode

  

1. array_keys返回数组的键

     

2. array_values返回数组值

     

3。 implodea 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));

答案 2 :(得分: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));

答案 3 :(得分: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

这是对您提问的最简洁,最有效的答案。

答案 4 :(得分:-1)

以前的答案绝对是最简洁的。但是如果您需要对数据进行任何操作(例如转义分隔符,或封装在引号中,或更改日期格式或添加货币符号),这可能是最灵活的......

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

如果你需要修剪你可以做的尾随昏迷

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