我正在研究一个PHP函数并得到这个错误,我不明白......
print_r($my_array);
将输出
Array (
[0] => Array (
[field_id_41] =>
)
)
但如果我尝试
if ($my_array[0]['field_id_41'] == "some value")
我收到错误
未定义的偏移量:0
我已经尝试$my_array['0']
,但这并没有什么不同。我可以将值分配给另一个变量,并打印出来,但出于某种原因,将它用于if语句会打破它。
我真的不确定这里发生了什么......感谢任何帮助。
编辑:这是我遇到问题的实际循环
foreach($counsellors_result as $one_counsellor) {
$this_time_out_query = ee()->db->select('field_id_41')
->from('channel_data')
->where('entry_id', $one_counsellor['parent_id'])
->get();
$this_time_out = $this_time_out_query->result_array();
$time_out_status = $this_time_out['0']['field_id_41'];
if ($time_out_status != "Time Out") {
ee()->db->insert(
'relationships',
array(
'parent_id' => $entry_id,
'child_id' => $one_counsellor['parent_id'],
'field_id' => 111
)
);
}
}
答案 0 :(得分:0)
尝试这种方式帮助完整
<?php
$this_time_out=array (0 => array ( 'field_id_41' =>""));
$time_out_status = $this_time_out[0]['field_id_41'];
if($time_out_status != ""){
echo $time_out_status;
}else{
echo "no any value<br><br>";
}
//print "no any value"
$this_time_out=array (0 => array ( 'field_id_41' =>"test"));
$time_out_status = $this_time_out[0]['field_id_41'];
if($time_out_status != ""){
echo $time_out_status;
}else{
echo "no any value";
}
//print "test"
答案 1 :(得分:0)
你在每次循环迭代中都有var_dump吗?我猜你在第一次迭代中得到数组(array('field_id_41'=&gt;''))但在第二次迭代中为null。当你查看输出时,你看不到var_dump(null)。
请尝试以这种方式转储:
$i = 0;
foreach (...) {
//...
var_dump(array('i' => $i, 'var' => $time_out_status));
$i++;
//...
}
你可能会在第二次迭代中看到:
array('i' => 1, 'var' => null)