【问题标题】:Loop through Object in PHP循环遍历 PHP 中的对象
【发布时间】:2016-11-30 22:55:49
【问题描述】:

我正在尝试读取 Object 数组的每个元素,代码从 excel 文件中读取值,然后将这些值分配给变量。

for ($row = 1; $row <= $highestRow; ++ $row) {

    $fname = $worksheet->getCellByColumnAndRow(0, $row);

    echo '<td>' . $fname . '<br></td>';
}

'fname' 的输出是四个不同的名称,但是我想使用循环读取每个值,然后将它们分配给链接,如下所示: www.example.com/fname 以便在我执行代码时打开四个不同的链接。我只是不知道如何一个一个地访问“fname”对象的每个元素。我阅读了在线可用的示例,但无济于事。请记住,我是 PHP 的新手。谢谢

【问题讨论】:

  • 如果example.com 在本地站点中我们看不到它
  • $row 是什么样的。试试var_dump()
  • @RiggsFolly 我放在这里的链接只是一个例子,它不是一个实时网址
  • 现在只是一个例子
  • @RiggsFolly 这是一个开始的例子。我不明白为什么我会在公开表格上提供真实的网站链接

标签: php excel phpexcelreader


【解决方案1】:

检查这是否有效,

    foreach($fname as $values)
    {
        $value1 = $values->keyname1;
        $value2 = $values->keyname2;
        $value3 = $values->keyname3;
        $value4 = $values->keyname4;
    }

    $url = "http://example.com/".$value1;

【讨论】:

  • 我做了,但什么也没发生。即使回显 $value1 也没有输出任何内容
  • 我已经能够修复它,但是当我遍历链接时,只有最后一个,即 $value4 打开。您能建议一种同时打开所有 4 个的方法吗?
  • only the very last i.e. $value4 opens up 是什么意思?
  • 我想通了!
【解决方案2】:

如果$fname 包含以空格分隔的名称列表,例如Tim John Sam Tom,那么您可以使用explode() 将该STRING 转换为字符串数组。

for ($row = 1; $row <= $highestRow; ++ $row) {

    $fname = $worksheet->getCellByColumnAndRow(0, $row);
    $names = explode(' ', $fname);
    foreach ( $names as $name ) {
        echo '<td>' . $name . '</td>';
    }
}

所以如果你使用$names 数组

$names[0] would be `Tim`
$names[1] would be `John`
$names[2] would be `Sam`
$names[3] would be `Tom`

【讨论】:

  • 好的,但是我怎么称呼每个名字呢?您发布的代码将名称排列如下:TimJohnSamTom
  • 好吧,你说的叫每个名字是什么意思
  • 我的意思是,如果想做类似的事情: Name1 = Tim 其中 tim,据我了解,至少在逻辑上来自 $fname[1]。
  • 数组从零开始,所以$names[0] 将是Tim
  • 而且你不需要创建标量变量,使用创建的数组
猜你喜欢
  • 1970-01-01
  • 2015-05-16
  • 2010-12-07
  • 1970-01-01
  • 2020-06-09
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多