我的代码出了问题,我已经尝试从数据库中获取数据,然后用单引号将它们放入数组中。然而,我仍然没有得到想要的输出。
我的代码
$sql = "SELECT DISTINCT S.SKILL_NAME ,GROUP_CONCAT(SK.SKILLSET_NAME) AS SKILLSET_ALL
FROM SKILL S
LEFT JOIN SKILLSET SK ON S.SKILL_ID = SK.SKILL_ID
GROUP BY S.SKILL_ID, S.SKILL_NAME";
$result = mysqli_query($conn,$sql);
$skillset = [];
$skillname = [];
$count = 0;
$checkrows=mysqli_num_rows($result);
if ($checkrows > 0)
{
while($row = mysqli_fetch_array($result))
{
$skillname[] = $row['SKILL_NAME'];
$skillset[] = $row['SKILLSET_ALL'];
$count++;
}
}
$keys = array_keys($skillname);
for($i = 0; $i < count($skillname); $i++) {
$objects =
[
$skillname[$i] . " => '". $skillset[$i] . "'",
];
print_r($objects);
}我在print_r($objects)之后得到了什么
Array ( [0] => ANDROID STUDIO => 'Array,Array,Array,cs230,cs230' ) Array ( [0] => C# => 'Java,Eclipse,Java,Eclipse,C#' )我需要什么
'ANDROID STUDIO' => ['cs230', 'cs230', 'Array', 'Array', 'Array'],
'C#' => ['Java', 'Eclipse', 'Java', 'Eclipse', 'C#],谢谢。
发布于 2022-01-11 04:31:37
当我查看您的SQL表时,将$row['SKILLSET_ALL']看作字符串而不是数组
使用explode将其更改为数组
$skillset[] = explode(',', $row['SKILLSET_ALL'])也许你得到了你想要的输出
发布于 2022-01-11 01:24:28
我想你可以把单引号放在$skillset前后。
$keys = array_keys($skillname);
for($i = 0; $i < count($skillname); $i++) {
$objects =
[
$skillname[$i] . " => '". $skillset[$i] . "'",
];
print_r($objects);
}https://stackoverflow.com/questions/70660424
复制相似问题