gpt4 book ai didi

php - 如何在 PHP 中向数组添加多个值?

转载 作者:行者123 更新时间:2023-11-29 23:52:36 25 4
gpt4 key购买 nike

我的 if 语句仅向数组添加一个元素,即使它们应该添加多个元素,因为多个元素具有相同的标签。

<?php

include("mysqlconnect.php");

$select_query = "SELECT `ImagesId`,`ImagesPath`,`Tag` FROM `offerstbl` ORDER by `ImagesId` DESC";
$sql = mysql_query($select_query) or die(mysql_error());

$data = array();

while($rows = mysql_fetch_array($sql,MYSQL_BOTH)){
if ($rows['Tag'] == "sport"){
$data['sport'] = array($rows['ImagesId'], $rows['ImagesPath'], $rows['Tag']);
}
if ($rows['Tag'] == "food"){
$data['food'] = array($rows['ImagesId'], $rows['ImagesPath'], $rows['Tag']);
}
if ($rows['Tag'] == "clothes"){
$data['clothes'] = array($rows['ImagesId'], $rows['ImagesPath'], $rows['Tag']);
}
}

echo json_encode($data);


?>

最佳答案

您正在覆盖数组元素,而不是将新元素插入数组。应该是:

$data['sport'][] = array($rows['ImagesId'], $rows['ImagesPath'], $rows['Tag']);

此外,您的 if 似乎没有必要,因为 $data 的键与标签相同。只要这样做:

$data[$rows['Tag']][] = array($rows['ImagesId'], $rows['ImagesPath'], $rows['Tag']);

我还建议对要添加的元素使用关联数组,而不是索引数组:

$data[$rows['Tag']][] = array('ImagesId' => $rows['ImagesId'], 
'ImagesPath' => $rows['ImagesPath'],
'Tag' => $rows['Tag']);

由于这些键与 $rows 中的键相同,因此您可以将其简化为:

$data[$rows['Tag']][] = $rows;

您还应该使用 MYSQL_ASSOC 而不是 MYSQL_BOTH,因为您永远不会访问 $rows 的数字键。

关于php - 如何在 PHP 中向数组添加多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25539001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com