在foreach中计算并不适用于我的情况

时间:2014-09-17 14:57:33

标签: php

foreach ($dom->find('.post h1 a') as $checkIfResultTrue2) {
    $totalSearchResult = $checkIfResultTrue2->href;

        if(count($totalSearchResult) > 1){
            echo "more than 1";
        }
     }

为什么这不打印超过1?我试过.length,但意识到这是JS。我试过尺寸和数量,没有运气。当我回显$ totalSearchResult时,那里有超过1个链接..嗯,有什么问题?

2 个答案:

答案 0 :(得分:3)

因为您将$totalSearchResult的值覆盖为字符串。如果$totalSearchResult是一个数组,则应按如下方式写入:

$totalSearchResult = array();
foreach ($dom->find('.post h1 a') as $checkIfResultTrue2) {
    $totalSearchResult[] = $checkIfResultTrue2->href;
    ...
}

答案 1 :(得分:2)

您正在覆盖一个变量。将该变量作为数组,并添加该数组中的每个元素。它应该是,

$totalSearchResult=array();

foreach ($dom->find('.post h1 a') as $checkIfResultTrue2) {
array_push($totalSearchResult, $checkIfResultTrue2->href);        <---

    if(count($totalSearchResult) > 1){
        echo "more than 1";
    }
 }