我正在尝试填充一个数组,我想在其中添加一些逻辑,这样就不会给我错误了...
以下是代码:
$entries_mixes = array();
foreach ($entries_query->result_array() as $entry) {
$entries_mixes[] = array('title' => $entry['title'],
'body' => $entry['body'],
'author' => $entry['author'],
'date_time' => $entry['date_time'],
'id' => $entry['id'],
'mix_name' => $mix['name'],
'photo_name' =>$photo['name']
);
}
我想要做的是能够在将它们放入数组之前检查是否存在某些变量....
例如if(isset($mix['name'])) then insert to array or else do nothing
关键是没有未声明的变量试图插入我的数组,因为它会导致错误...谢谢!
答案 0 :(得分:3)
您可以使用? :
三元运算符:
$entries_mixes[] = array(
'title' => (isset($entry['title']) ? $entry['title'] : null),
'author' => (isset($entry['author']) ? $entry['author'] : null),
...
或者,使用empty()
进行检查
答案 1 :(得分:0)
以下内容将检查title
数组中是否存在entry
,或者是否为空。如果是这样,它将完全跳过该条目并继续循环中的下一个元素。
$entries_mixes = array();
foreach ($entries_query->result_array() as $entry) {
if (empty($entry['title'])) {
continue;
}
$entries_mixes[] = array('title' => $entry['title'],
'body' => $entry['body'],
'author' => $entry['author'],
'date_time' => $entry['date_time'],
'id' => $entry['id'],
'mix_name' => $mix['name'],
'photo_name' =>$photo['name']
);
}
答案 2 :(得分:0)
您可以使用ternary operator,这样如果变量不存在,NULL
将用作值。但在这种情况下,你实际上想要完全忽略数组中的某些键。所以只需分别设置每个键:
$entry[] = array();
...
if (isset($mix['name'])) {
$entry['mix_name'] = $mix['name'];
}
...
$entries_mixes[] = $entry;