$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。
答案 0 :(得分:2)
$info['First_Names']
不是数组,而是一个字符串("John"
)。如果将其定义为数组,则可能有效;)
答案 1 :(得分: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);
答案 2 :(得分:0)
$info['First_Names']
不是数组。如果您尝试将名称推入$info
,则需要使用您的信息创建一个数组,然后将其推送(在此过程中创建一个多维数组)。
$a = array("First_Names" => $fname);
array_push($info, $a);
如果您要覆盖['First_Name']
中的信息,只需通过密钥访问即可。
$info['First_Name'] = $fname;
答案 3 :(得分: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);
?>
干杯:)