如何从变量中的数组中获取所有数据?

时间:2013-05-19 06:18:40

标签: php

我有一个像

这样的动态数组
Array
(
[company_name] => a
[address] => b
[country_id] => 1
[email] => c@c.com
[currency_id] => 1
)

我想创建一个索引变量,如:

`$var = "company_name,address,country_id,email,currency_id";`

和值变量如:

$value = "a,b,1,c@c.com,1";

记住数组索引和值不固定。 提前谢谢。

3 个答案:

答案 0 :(得分:4)

你可以试试这个。

$var = implode(',', array_keys($myArray));

$value = implode(',', array_values($myArray));

$myArray是您在问题中显示的数组。

答案 1 :(得分:2)

使用array_keys()array_values()功能。


考虑你有这样一个数组:

$arr = array(
    'company_name' => 'a',
    'address' => 'b',
    'country_id' => 1,
    'email' => 'c@c.com',
    'currency_id' => 1
);

使用array_keys()功能获取所有密钥:

$keys = array_keys($arr);
print_r($keys);

// output
// Array
// (
//     [0] => company_name
//     [1] => address
//     [2] => country_id
//     [3] => email
//     [4] => currency_id
// )

然后您可以使用implode将数组转换为字符串:

$k = implode($keys, ',');
echo $k;
// company_name,address,country_id,email,currency_id

对于这样的值,我们使用array_values()函数:

$vals = array_values($arr);
print_r($vals);

// output
// Array
// (
//     [0] => a
//     [1] => b
//     [2] => 1
//     [3] => c@c.com
//     [4] => 1
// )

然后内爆:

$v = implode($vals, ',');
echo $v;
// a,b,1,c@c.com,1

答案 2 :(得分:1)

这是你的意思吗?

$keys=implode(',',array_keys($a));
$vals=implode(',',array_values($a));