当我尝试向数组添加值时,它只为我输出数组,
function getAllRoles($format='ids')
{
$format = strtolower($format);
$query = $this->db->prepare("SELECT * FROM roles");
$query->execute();
$resp = array();
foreach ($query as $row){
if ($format == 'full'){
$resp[] = array("ID"=>$row['ID'],"Name"=>$row['roleName']);
}else{
$resp[] = $row['ID'];
}
}
return $resp;
}
要获取我输入的数组,
echo "<br>getAllRoles: ".$Secure->getAllRoles("full");
答案 0 :(得分:2)
您正在使用字符串连接运算符,因此所有参数都将转换为字符串。
转换为字符串的数组显示为Array
。
您对输出的期望是什么?
您必须遍历数组才能输出每个元素。在你的情况下,你有一个“固定”数组(数据结构不会改变,你总是知道那里的元素数量):
$data = $Secure->getAllRoles("full");
echo $data['ID'];
echo $data['Name'];
答案 1 :(得分:1)
您无法在阵列上执行echo
。 echo
期望参数为string
。
你可以做的是遍历数组并打印/回显所有索引,如:
foreach($arrayname as $something)
{
echo $something;
}
将打印出每个索引。
如果您尝试回显数组,则会得到Array
作为输出。
阅读here了解更多信息。
答案 2 :(得分:0)
您正在输出数组: -
你的函数返回这个数组: -
$resp=array("ID"=>$row['ID'],"Name"=>$row['roleName']);
如果要回显数组中的所有元素,则必须提及其键。
你可以做到这一点: -
$allRoles = $Secure->getAllRoles("full");
echo "<br>getAllRoles: ".$allRoles['name'];
答案 3 :(得分:0)
更改
if ($format == 'full'){
$resp=array("ID"=>$row['ID'],"Name"=>$row['roleName']);
}else{
$resp = $row['ID'];
}
要
if ($format == 'full'){
$resp[]=array("ID"=>$row['ID'],"Name"=>$row['roleName']);
}else{
$resp[] = $row['ID'];
}
答案 4 :(得分:0)
不echo
打印您必须使用的数组print_r($array)
或var_dump($array)
或foreach
不要使用
echo $Secure->getAllRoles("full");
使用:
print_r($Secure->getAllRoles("full"));
or
var_dump($Secure->getAllRoles("full"));
or
$resp = $Secure->getAllRoles("full");
foreach($resp as $key=>$value) {
echo "$key = $value";
}
答案 5 :(得分:0)
您可以使用echo输出数组。您可以使用var_dump
或print_r
来获取数组的详细信息。
var_dump($array);
print_r($array);
或者如果你仍然需要回声,那么使用json_encode
转换为json字符串,如
echo json_encode($array);