【问题标题】:PHP foreach with null value具有空值的 PHP foreach
【发布时间】:2016-07-08 09:13:28
【问题描述】:

我目前遇到了 foreach 循环的问题。我有一个带有字符串值或空值的表,当我使用 foreach 显示它时,没有换行符,但有一个 for 循环,它可以正确显示。 我的 foreach 代码:

foreach($table_iban_out as $element){
    echo $element.'<br/>';
}

还有我的代码:

for($i=0; $i<count($table_iban_out);$i++){
    echo $table_iban_out[$i].'<br/>';
}

对于我的表,[0] 和 1 为空,[2]-[6] 为字符串,[7] 再次为空,所以我的页面上应该有类似的内容:

  • 无效
  • 无效
  • 字符串
  • ...
  • 再次作废

我尝试了一个简单的数组

$table = array('a','','b');

它适用于 foreach 循环,所以有人知道它不适用于我的 $table_iban_out 表吗?

谢谢

编辑:感谢您的帮助,这是我使用时得到的

var_dump($table_iban_out);

编辑 2: 所以基本上我有一个带有 IBAN 的 Excel 文件,然后我提取:

function conversion($file){
    require_once '../../PHPExcel-1.8/Classes/PHPExcel/IOFactory.php';
    $objPHPExcel = PHPExcel_IOFactory::load($file);
    $sheet = $objPHPExcel->getSheet(0);
    $column = convert($sheet->getHighestColumn());
    $row = $sheet->getHighestRow();
    for($i=0; $i<$column; $i++){ 
        for($j=1; $j<=$row; $j++){
            $table[$i][$j-1]= $sheet->getCellByColumnAndRow($i,$j);
        }
    }
    return $table;
}

然后我用另一个函数逐个元素地测试 $table 以查看 IBAN 是否正确,如果 IBAN 错误则返回 $table_iban_out 女巫包含 null,如果 IBAN 正确则返回 IBAN。

【问题讨论】:

  • var_dump($table_iban_out);准确地向我们展示您所拥有的
  • 这很难读。 array(4) { [0]=> object(PHPExcel_Cell)#187 (6) { ["value":"PHPExcel_Cell":private]=> string(27) "FR9510096182571234567890123" ["calculatedValue":"PHPExcel_Cell":private ]=> NULL ["dataType":"PHPExcel_Cell":private]=> string(1) "s" ["parent":"PHPExcel_Cell":private]=> object(PHPExcel_CachedObjectStorage_Memory)#168 (5) { ["parent ":protected]=> 对象(PHPExcel_Worksheet)#166 (40) {
  • 那里没有字符串……那里有对象……
  • @Zhang 我检查了你的例子 $table_iban_out = array('a','','b');我对两个“for循环”都得到了相同的答案
  • @Zhang 请使用 echo "
    ";var_dump($table_iban_out); 打印回声“
    ”;并将结果粘贴在上面。

标签: php arrays foreach


【解决方案1】:

因为您的元素不是字符串,而是您必须使用的 PHPExcel_Cell 对象

$element-&gt;getValue() 而不是$element

foreach($table_iban_out as $element){
    echo $element->getValue().'<br/>';
}

【讨论】:

  • 以什么方式“不起作用”?你收到错误信息了吗?系统是否崩溃并烧毁?它是否显示不正确的值?学会解释你的问题,这样更容易帮助你......“没用”不是对问题的有效诊断
  • 对不起,我仍然得到相同的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多