$info = array(
"First_Names" => "John",
"Last_Names" => "Smith",
"Gender" => "Male",
);
array_push($info["First_Names"], "$fname");
print_r ($info);
我通过高中课程开始学习PHP。我不是完全知识渊博,也不太注意,但我完全坚持这一点;
我正在尝试做的是将用户(杰克、詹姆斯、雪莉等)定义的变量$fname推送到$info数组内的数组First_Names中。我不确定哪里出了问题,但 PHP 并没有将$info声明为数组(我认为,它指出"警告:array_push() [function.array-push]:第一个参数应该是/home/a4938424/public_html/process.php 第 22 行的数组"。如果我打印出数组,它将显示默认名称和性别,如果我回显出$fname变量,它会显示正确。
我咨询了两个不同的人,他们的建议都没有奏效,现在我完全被难住了,每个人都没有建议。有人看到这是怎么回事吗?感谢您的任何回复,请注意,我几乎不知道任何 PHP。
$info['First_Names']
不是一个数组,它是一个字符串 ( "John"
)。如果将其定义为数组,则;)
如果您希望数组的元素是数组,则必须将它们声明为:
$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);
$info['First_Names']
不是一个数组。 如果您尝试将名称推送到$info
则需要使用您的信息创建一个数组,然后推送它(在此过程中创建一个多维数组)。
$a = array("First_Names" => $fname);
array_push($info, $a);
如果您尝试覆盖['First_Name']
中的信息,则只需通过其密钥访问它即可。
$info['First_Name'] = $fname;
您需要在数组中声明一个数组。下面是一个示例:
<?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);
?>
干杯:)