当前位置: 首页 > 面试题库 >

无法输出多维数组

弓智明
2023-03-14
问题内容

我无法从多维数组获得任何输出。我正在尝试使用push_array方法获取数据。

我想得到我的输出为:

  • John, 1001
  • Tom, 1002
  • Jerry, 1003
  • Sarah, 1004

但是,我没有得到任何输出。我知道该数组正在工作,但是当我回显$ message并且在输出foreach数组中不使用$ id和$ name时得到以下输出。

当前输出:(在回显$ message时)

  • 1
  • 2
  • 3
  • 4

但是,当我使用$ id和$ name时,什么都没有显示,如下所示。

<ul class="result"><?php
    foreach ($output as $message) {
        $id = $message[1][0];
        $name = $message[1][1];
    ?><li>
        <a href="handleDownload.php?id=<?php echo $id;?>"><?php echo $name; ?>      </a>
    </li><php } ?>
</ul>

这是我的完整代码:

<?php 
$Download = new Download();
$result = array(); //store results of upload
try {
    $Download->showDBFiles();
    $output = $Download->getMessages();
} catch (Exception $e) {
    $result[] = $e->getMessage();
}

?>

<h2>Output</h2>
<?php if ($output) { ?>
    <ul class="result">
    <?php  foreach ($output as $message) {
        $id = $message[1][0];
        $name = $message[1][1];
    ?>
        <li><a href="handleDownload.php?id=<?php echo $id;?>"><?php echo $name; ?></a></li>
<?php } ?>
</ul>
<?php } ?>

定义数组的函数

protected $messages = array();

        public function showDBFiles() {
            global $database;
            $values=array();
            $sql = "SELECT resume_id, resume_title FROM ".self::$table_name;
            $result = $database->query($sql);
            if(mysqli_num_rows($result)==0){
                 $this->messages[] = "Database is empty";
            }else{
                while(list($id, $name) = mysqli_fetch_array($result)){
                    array_push($this->messages, array($id, $name));
                }
            }
        }

        public function getMessages()
        {
                return $this->messages;
        }

更新:使用了jedrzej.kurylo的建议后,我能够拥有$ id和$ name值,如我的var_dump输出所示:

array(4) { [0]=> array(2) { [0]=> string(2) "73" [1]=> string(2) "qd" } [1]=> array(2) { [0]=> string(2) "72" [1]=> string(3) "jav" } [2]=> array(2) { [0]=> string(2) "70" [1]=> string(4) "da12" } [3]=> array(2) { [0]=> string(2) "71" [1]=> string(3) "jav" } }

但是由于某种原因,我不确定我的输出现在是这样的:

  • d
  • a
  • a
  • a

问题答案:

问题在于您如何在此处使用 array_push

$this->messages[] = array_push($values, array($id, $name));

array_push 不返回更新的数组,而是返回数组中新的项目数-
请参见http://php.net/manual/en/function.array-
push.php
。这就是为什么您的输出中的整数不断增加的原因。

而是执行以下操作:

while(list($id, $name) = mysqli_fetch_array($result)){
  array_push($this->messages, array($id, $name));
}

要不就

while(list($id, $name) = mysqli_fetch_array($result)){
  $this->messages[] = array('id'=>$id, 'name'=>$name);
}

然后,您可以像这样访问 $ id$ name

$id = $message['id'];
$name = $message['name'];


 类似资料:
  • MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros, ones, rand, 或randn函数来产生。例如, R = randn(3,4,5); 生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。 三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在

  • 本文向大家介绍写一个方法把多维数组降维相关面试题,主要包含被问及写一个方法把多维数组降维时的应答技巧和注意事项,需要的朋友参考一下

  • 我有一个一维数组字符串,其中可能包含最多5个已知项。我想以“我的数组中总共有item1、item2、item3、item4、item5”这样的格式将数组字符串中的每一个(不管有多少个)输出到表单上的标签上。以下是我的阵列的外观:

  • 问题内容: 什么是空指针异常(),什么原因导致它们? 可以使用哪些方法/工具确定原因,以阻止异常导致程序过早终止? 问题答案: 声明引用变量(即对象)时,实际上是在创建指向对象的指针。考虑以下代码,您在其中声明基本类型的变量: 在此示例中,变量是an ,Java会为您初始化它。在第二行为其分配值时,您的值将写入所指的存储位置。 但是,当您尝试声明引用 类型时 ,会发生一些不同的事情。采取以下代码:

  • 在建立一个简单的感知器神经网络时,我们通常将输入格式为的二维矩阵传递给一个二维权重矩阵,类似于这个简单的神经网络的numpy。我总是假设一个神经网络的感知器/密集/线性层只接受一个2D格式的输入并输出另一个2D输出。但是最近我遇到了这个pytorch模型,其中一个线性层接受一个3D输入张量并输出另一个3D张量()。 这些就是我的问题, 上述神经网络是否有效?这就是模型是否能够正确地训练? 即使在传

  • 问题内容: 例如: 一个) 与 b) 最初以为我会为了简化而选择a)。 我知道Java不会像C那样在内存中线性存储数组,但是这对我的程序有什么影响? 问题答案: 通常,在搜索答案时,最好的办法是查看如何将选择编译到JVM字节码中: 这被翻译成: 因此,如您所见,JVM已经知道我们在谈论多维数组。 进一步说明: 这被转换为(跳过循环): 因此,如您所见,多维数组在VM内部进行处理,无用指令不会产生开