我有以下数组结构(从JavaScript对象到JQuery AJAX):
[column_id]
[column_content_id]
[content]
.....
[options]
.....
[styles]
.....
我通过以下方式浏览数组:
foreach($this->rom['columns'] as $column_id => $columns) {
// add columns
$this->add_column($column_id, $this->id, $columns['options']['column-width']);
// content
foreach($columns as $content_id => $content) {
// assign values
$values = array(
'styles' => $content['styles'],
'options' => $content['options'],
'style_class' => 'is-cc-style',
'in_column' => true,
'id' => str_replace('#', '', $mc_content_id),
'column_id' => $column_id,
'content_type' => $content['content_type'],
'options_class' => 'is-cc-option'
);
}
}
除了我收到以下通知外,一切都运作良好:
Notice: Undefined index: styles
Notice: Undefined index: options
Notice: Undefined index: content_type
我该如何避免这种情况?目前我使用:
if(isset($content['styles'])) {
$content['styles'] = '';
}
但我想这并不是它应该如何。
感谢您的帮助! :)
答案 0 :(得分:2)
如果没有设置属性,看起来你想要返回一个空字符串,而你使用的内容对我来说就像语法错误一样?
以下是我的做法
$values = array(
'styles' => isset($content['styles']) ? $content['styles'] : "",
'options' => isset($content['options']) ? $content['options'] : "",
'style_class' => 'is-cc-style',
'in_column' => true,
'id' => str_replace('#', '', $mc_content_id),
'column_id' => $column_id,
'content_type' => isset($content['content_type']) ? $content['content_type'] : "",
'options_class' => 'is-cc-option'
);
答案 1 :(得分:0)
当你尝试为变量分配一些NULL时,你会得到这样的通知(这取决于你打开的错误的类型),我猜测样式,选项和/或content_type是可空的?如果是这样,您可以使用@来抑制警告,如下所示:
$values = array(
'styles' => @$content['styles'],
'options' => @$content['options']
);
或者如果你想将它设置为默认值,adeneo的解决方案将是最好的。