使用与SQL语句相关的foreach时,字符串偏移量非法


Illegal string offset when using foreach related to SQL Statement

为什么在尝试使用以下方法访问任何数组键时会出现此错误?

$product_cat = '22';
$db = JFactory::getDbo();
$query = $db->getQuery( true );
$query->select( $db->quoteName( array( 'name', 'alias', 'parent' ) ) );
$query->from( $db->quoteName( '#__k2_categories' ) );
$query->where( $db->quoteName( 'parent' )." = " .$product_cat );
$db->setQuery( $query );
$row = $db->loadObjectList();
print_r($row);
foreach ($row as $value) {
    foreach($value as $result) {
        echo '<ul>';
        echo '<li><a href="#">' . $result['name'] . '</a></li>';
        echo '</ul>';
    }
}

正在返回以下数组:

数组(
[0]=>stdClass对象([name]=>刺激化学品[alias]=>刺激化学品[pparent]=>22)
[1] =>stdClass对象([名称]=>固井化学品[别名]=>固井化学物质[母体]=>22)
[2] =>stdClass对象([name]=>提高采收率[alias]=>提高采油率[parent]=>22)
[3] =>stdClass对象([name]=>钻井液添加剂[alias]=>钻井油添加剂[parent]=>22)
[4] =>stdClass对象([名称]=>溶剂和表面活性剂[别名]=>溶剂与表面活性剂[parent]=>22)
[5] =>stdClass对象([名称]=>盘管化学品[别名]=>盘管化学物质[父项]=>22)
[6] =>stdClass对象([名称]=>生产化学品[别名]=>生产化学物质[父项]=>22)

所以我不确定发生了什么,我只是试图访问"name"、"alias"answers"parent",并将它们在不同的地方以html字符串的形式输出。有什么想法吗?

试试这个:

foreach ($row as $value) {
   echo '<ul>';
   echo '<li><a href="#">' . $value->name . '</a></li>';
   echo '<li><a href="#">' . $value->alias . '</a></li>';
   echo '<li><a href="#">' . $value->parent . '</a></li>';
   echo '</ul>';
}