0
$info = array(
        "First_Names" => "John",
        "Last_Names" => "Smith",
        "Gender" => "Male",
    );

array_push($info["First_Names"], "$fname");

print_r ($info);

我通过高中课程开始学习 PHP。我并不完全了解,也不太注意,但我完全坚持这一点;

我要做的是将用户(Jack、James、Shelly 等)定义的变量 $fname 推入 $info 数组内的数组 First_Names 中。我不确定哪里出了问题,但是 PHP 没有将 $info 声明为一个数组(我认为,它指出“警告:array_push() [function.array-push]:第一个参数应该是 /home/ 中的一个数组a4938424/public_html/process.php 在第 22 行"。如果我打印出数组,它将显示默认名称和性别,如果我回显 $fname 变量,它会正确显示。)

我咨询了两个不同的人,他们的建议都没有奏效,现在我完全被难住了,每个人都没有建议。有谁看到它发生了什么?感谢您的任何回复,请注意我几乎不知道任何 PHP。

4

4 回答 4

2

$info['First_Names']不是一个数组,它是一个字符串 ( "John")。如果你将它定义为一个数组,它可能会起作用;)

于 2013-11-01T00:02:05.960 回答
1

如果您希望数组的元素是数组,则必须这样声明它们:

$info = array(
        "First_Names" => array("John"),
        "Last_Names" => array("Smith"),
        "Gender" => array("Male"),
    );

然而,恕我直言,这是一个糟糕的设计。与其值是索引数组的关联数组,不如将其反转为元素是关联数组的索引数组。

$info = array(array('First_Name' => 'John',
                    'Last_Name' => 'Smith',
                    'Gender' => 'Male')
             );

这使您可以将每个人视为单个元素,而不必并行遍历所有子数组。要将另一个人添加到数组中,请执行以下操作:

$info[] = array('First_Name' => $fname, 'Last_Name' => $lname, 'Gender' => $gender);
于 2013-11-01T00:07:02.580 回答
0

$info['First_Names']不是数组。如果您尝试将名称推送到$info您将需要使用您的信息创建一个数组,然后将其推送(在此过程中创建一个多维数组)。

$a = array("First_Names" => $fname);
array_push($info, $a);

如果您试图覆盖其中的信息,['First_Name']那么只需通过它的密钥访问它。

$info['First_Name'] = $fname;
于 2013-11-01T00:07:40.430 回答
0

您需要在数组中声明一个数组。这是一个例子:

<?php
$fnames = array("John","Adam");
$lnames = array("Smith","Kowalski");
$gender = array("Male","Male");

$info = array(
            "First_Names" => $fnames,
            "Last_Names" => $lnames,
            "Gender" => $gender
        );

$new_name = "New John";

array_push($info["First_Names"],$new_name);

var_dump($info);
?>

干杯:)

于 2013-11-01T00:14:01.353 回答