PHP中数组中的条件

时间:2014-10-23 14:25:50

标签: php arrays conditional-statements

我有很多名为$value1$value2等的变量。我想为每个变量创建一个数组 key ,只有当变量不为空时。像这样:

$array = array(
    If (!empty($value1)) { "bar" => "foo", }
    If (!empty($value2)) { "foo" => "bar", }
);

我该怎么做以及什么是好的做法?

3 个答案:

答案 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};
    }
}