PHP 按顺序打印另一个数组中的数组值

问题描述 投票:0回答:2

我有一个数组($fields_order_obj),其中包含我想要在表中打印的列表的名称和顺序索引。 在另一个数组 ($data) 中,我拥有要打印的所有值,但顺序与 $fields_order_obj 数组中的顺序不同。我通过使用 fetchmode ADODB_FETCH_ASSOC 的查询从 SQL 中获取该数组,然后像使用 foreach ($data as $row) {}

一样遍历每一行
$fields_order_obj ([name] => Del_Month [size] => 10 [reportindex] => 0, [name] => Del_Date [size] => 10 [reportindex] => 1, [name] => Article [size] => 10 [reportindex] => 3, ect.)
$data [0]([name] => Article [value] => "A", [name] => Del_Date [value] => "03-03-21", [name] => Del_Month [value] => "March"),[1]([name] => Article [value] => "B", [name] => Del_Date [value] => "01-02-21", [name] => Del_Month [value] => "Feb"), ect.

到目前为止我所拥有的:

print "<table style=\"width:100%\">";
print " <tr>\n";
foreach ($fields_order_obj as $obj){
      print "<th>".$obj->name."</th>\n";
}
print " </tr>\n";
foreach ($data as $row) {
    print " <tr>\n";
    foreach ($row as $name => $value) {
        print "<td>".$value."</td>\n";
    }
}
print " </tr>\n";

显然数据没有按照我想要的顺序打印,我需要检查并比较字段的

name
,然后检查
reportindex
以正确的顺序打印它,但我似乎无法编写正确的代码...

php multidimensional-array associative-array
2个回答
0
投票

这成功了:

print "<table style=\"width:100%\">";
print " <tr>\n";
foreach ($fields_order_obj as $obj){
      print "<th>".$obj->name."</th>\n";
}
print " </tr>\n";
foreach ($data as $row) {
    print " <tr>\n";
    foreach ($fields_order_obj as $obj){
        $fieldName = $obj->name;
        print "<td>".$row[$fieldName]."</td>\n";
    }
}
print " </tr>\n";

0
投票

我想你的代码应该是这样的:

print "<table style=\"width:100%\">";
print " <tr>\n";
foreach ($fields_order_obj as $obj){
      print "<th>".$obj->name."</th>\n";
}
print " </tr>\n";
foreach ($data as $row) {
    print " <tr>\n";
    foreach ($fields_order_obj as $obj){
        print "<td>".$row[$obj->name]."</td>\n";
    }
}
print " </tr>\n";

您应该迭代字段数组以保持按预期顺序打印并按字段名称获取行数据。请记住,如果您的数据没有

$fields_order_obj
中指定的所有字段,您应该注意这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.