我有很多名为$value1
,$value2
等的变量。我想为每个变量创建一个数组 key ,只有当变量不为空时。像这样:
$array = array(
If (!empty($value1)) { "bar" => "foo", }
If (!empty($value2)) { "foo" => "bar", }
);
我该怎么做以及什么是好的做法?
答案 0 :(得分:3)
你不能这样做 - 如果你使用数组快捷方式表示法,你将在数组中创建一个条目,无论是否有值。您必须单独测试/设置每个密钥:
$arr = array();
if (!empty($value)) { $arr['bar'] = 'foo' }
答案 1 :(得分:3)
PHP数组是动态的,因此您可以轻松地添加内容:
$array = array(); // start with empty one
if (!empty($value1)) $array['bar'] = 'foo';
if (!empty($value2)) $array['foo'] = 'bar';
// you don't even have to specify a key,
// it will just increment accordingly if left out
if (!empty($value3)) $array[] = 'foobar';
这将导致(如果所有3个变量都非空):
array(3) {
'a' => 'foo',
'b' => 'bar',
0 => 'foobar'
}
http://php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying
答案 2 :(得分:-2)
您可以使用Variable variables:
$array = array();
$count = 4; //You can have n variables
for($i = 1; $i <= $count; $i++){
if(isset(${'value' . $i})){
$array[$i] = ${'value' . $i};
}
}