1
我在jQuery中創建的關聯數組轉換爲我可以在PHP中訪問和使用的關聯數組時遇到問題。將二維關聯jquery數組轉換爲php數組
我使用以下方法來建立一個關聯數組:
var colors = {};
$(this).find('input[name="color_id"]').each(function() {
var color_entry_id = $(this).val();
colors[color_entry_id] = jQuery.makeArray($(this).siblings(".colors." + $(this).val()).find(".img_color a.selected").map(function() {
return $(this).css("background-color");
}));
});
基本上,上面的代碼應該返回形式的東西:
colors = {
"{{ color_entry_id }}": [array of string rgb values]
}
我然後將其與發送到我的PHP腳本如下:
$.post(
"test.php",
{ "edit_colors": JSON.stringify(colors) },
...
);
在我的PHP,我想能夠抓住對應於{ {color_entry_id}}並遍歷值以在更新查詢中使用。以下是我的PHP代碼:
$check_colors = array(
"rgb(204, 51, 51)" => "red",
"rgb(102, 153, 204)" => "sky_blue",
"rgb(0, 204, 51)" => "lime_green",
"rgb(0, 102, 0)" => "dark_green",
"rgb(153, 0, 0)" => "burgandy",
"rgb(255, 102, 51)" => "orange",
...
);
$colors = json_decode($_POST['edit_colors']);
foreach($images as $color_entry => $image_link) {
$update_color_query = "UPDATE color SET ";
foreach(array_keys($check_colors) as $color) {
if(in_array($color, $colors[$color_entry])) {
$update_color_query .= $check_colors[$color] . "=1, ";
} else {
$update_color_query .= $check_colors[$color] . "=0, ";
}
}
$update_color_query .= "image_url='$image_link' WHERE id=$color_entry";
mysql_query($update_color_query);
}
在上面的代碼中,圖像是與對應一個單獨的數組{{color_entry_id}} S和圖像鏈接爲好。 $ check_colors是一個PHP硬編碼的rgb值關聯數組,用於人類可讀的顏色。我的問題是鏈接:
in_array($color, $colors[$color_entry])
拋出一個「致命錯誤:無法使用類型stdClass的爲陣」,因爲$顏色[$ color_entry]不成爲二維數組我試圖得到它是。所以,任何人都知道我在做什麼錯了,我怎麼才能讓這個二維數組在我的PHP代碼中循環?
哇,我什至沒有看到文檔的那一部分。感謝您指出了這一點。 – jrubins