我试图创建一个过滤系统基本上,从一个超文本标记语言形式的输入获得数据,然后使用PHP中的数据来过滤现有的‘配置文件’从$profileArray,输出任何配置文件包括用户输入的数据/变量(S)。我不知道如何通过我的filter_array函数发送用户输入数据,据我所知,这些函数的工作原理是使用var_dump进行测试。
作为一个初学者,我不能理解php.net中的$foo和$bar解释,所以清晰的解释是非常感谢的。
HTML
<html>
<body>
<form action="profileFilter.php" method="POST">
<p>Age: <input type="text" name="ageChoice"></p>
<p>Colour: <input type="text" name="colourChoice"></p>
<input type="submit" name="catQualitiesBtn">
</form>
</body>
</html>PHP
<?php
$profileArray = array(
array( 'Name' => "Toby",
'Age' => 3,
'Colour' => "Ginger",
),
array( 'Name' => "Cassie",
'Age' => 3,
'Colour' => "Tabby",
),
array( 'Name' => "Lucy",
'Age' => 1,
'Colour' => "Black",
)
);
function get_profile_by_age ($profile, $age){
return array_filter ($profile, function($ageInput) use ($age){
return $ageInput['Age'] === $age;
});
}
function get_profile_by_age ($profile, $colour){
return array_filter ($profile, function($colourInput) use ($colour){
return $colourInput['Colour'] === $colour;
});
}
$ageInput = intval($_POST['ageChoice']);
$colourInput = strval($_POST['colourChoice']);
echo function get_profile_by_age ($ageInput , $age);
echo function get_profile_by_colour ($colourInput , $colour);
?>发布于 2016-05-22 12:44:30
我不明白你的问题是什么,但我认为你不能循环你的数组。此循环也将帮助您遍历多维数组。在您的数组中,age不是string,因此您不必将用户输入的值从string更改为int。
<html>
<body>
<form action="profileFilter.php" method="POST">
<p>Age: <input type="text" name="ageChoice"></p>
<p>Colour: <input type="text" name="colourChoice"></p>
<input type="submit" name="catQualitiesBtn">
</form>
</body>
</html>PHP
<?php
$profileArray = array(
array( 'Name' => "Toby",
'Age' => 3,
'Colour' => "Ginger",
),
array( 'Name' => "Cassie",
'Age' => 3,
'Colour' => "Tabby",
),
array( 'Name' => "Lucy",
'Age' => 1,
'Colour' => "Black",
)
);
if (isset($_POST['ageChoice']) && isset($_POST['colourChoice'])) {
$ageInput = $_POST['ageChoice'];
$colourInput = $_POST['colourChoice'];
for ($i=0; $i >=0 ; $i++) {
if ($profileArray[i]['Age'] == $_POST['ageChoice'] && $profileArray[i]['Colour'] == $_POST['colourChoice']) {
echo "name -".$profileArray[i]['Name'];
break;
}
}
}
}https://stackoverflow.com/questions/37370382
复制相似问题