Php 在数组归档中添加一些逻辑
我正在尝试填充一个数组,我想在其中添加一些逻辑,这样它就不会返回错误 代码如下:Php 在数组归档中添加一些逻辑,php,arrays,Php,Arrays,我正在尝试填充一个数组,我想在其中添加一些逻辑,这样它就不会返回错误 代码如下: $entries_mixes = array(); foreach ($entries_query->result_array() as $entry) { $entries_mixes[] = array('title' => $entry['title'], 'body' => $entry['body'], 'author' => $entr
$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']),然后插入到数组中,或者什么都不做
关键是没有未声明的变量试图插入我的数组,因为它会返回错误…谢谢 您可以使用
?:代码>三值运算符:
$entries_mixes[] = array(
'title' => (isset($entry['title']) ? $entry['title'] : null),
'author' => (isset($entry['author']) ? $entry['author'] : null),
...
或者,使用empty()
进行检查您可以使用?:代码>三值运算符:
$entries_mixes[] = array(
'title' => (isset($entry['title']) ? $entry['title'] : null),
'author' => (isset($entry['author']) ? $entry['author'] : null),
...
或者,使用empty()
进行检查下面将检查条目
数组中是否不存在标题
,或者它是否为空。如果是这样,它将完全跳过条目并继续循环中的下一个元素
$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']
);
}
下面将检查条目
数组中是否不存在标题
,或者它是否为空。如果是这样,它将完全跳过条目并继续循环中的下一个元素
$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']
);
}
您可以使用,以便如果变量不存在,NULL
用作值。但在这种情况下,您实际上希望从数组中完全忽略某些键。因此,只需分别设置每个关键点:
$entry[] = array();
...
if (isset($mix['name'])) {
$entry['mix_name'] = $mix['name'];
}
...
$entries_mixes[] = $entry;
您可以使用,以便如果变量不存在,NULL
用作值。但在这种情况下,您实际上希望从数组中完全忽略某些键。因此,只需分别设置每个关键点:
$entry[] = array();
...
if (isset($mix['name'])) {
$entry['mix_name'] = $mix['name'];
}
...
$entries_mixes[] = $entry;
空($entry['title'])
已经等同于!isset($entry['title'])||$条目['title']
为空($entry['title'])
已等同于!isset($entry['title'])||$条目['title']
。嗯,这个问题有几种不同的解释。。。如果未设置某个条目的任何值,是否要从$entries\u mixes
中完全忽略该条目?或者你想让每个结果都出现在$entries\u mixes
中,而每个结果都可能缺少值?谢谢大家的快速回复…@Richard:将值设置为null对我来说就行了。嗯,这个问题有几种不同的解释。。。如果未设置某个条目的任何值,是否要从$entries\u mixes
中完全忽略该条目?或者你想让每个结果都出现在$entries\u mixes
中,而每个结果都可能缺少值吗?谢谢大家的快速回复…@Richard:将值设置为null可以帮我完成这项工作。要扩展此功能,请使用数组\u过滤器
而不使用回调作为第二个参数来删除所有等于false
(例如null
)。要扩展此功能,请使用array\u filter
,而不使用回调作为第二个参数,以删除所有等于false
(例如null
)的项。