关联 PHP 数组中的 Javascript 数组/对象顺序

标签 javascript php ajax json

在描述问题之前,请原谅任何不正确的术语和对对象而不是数组的意外引用,反之亦然,我还没有完全跟上这方面的速度,但正在努力解决它。

我在 PHP 中将以下数组保存为 session 变量:

{"CategoryF":[],"CategoryA":["生活","那里","人","土地","家庭"],"CategoryC":["各种"]}

将图像网格中的缩略图拖入新顺序后,它会执行 javascript 中的函数,并使用 调用 PHP 脚本ajax。它当前仅检索 session 数组的最新版本。稍后将采取必要的步骤将更新后的数组保存回 session 变量和数据库:

var sorty = Sortable.create(thumbcontainer, { 
        animation: 250,
        draggable: "img",
        dataIdAttr: 'id',
        onUpdate: function (/**Event*/evt) {
            var orderList = sorty.toArray();
            var catsArray = 
            $.ajax({
                type: 'POST',
                url: 'includes/proc_cats.php',
                dataType: 'json'
            }).done(function(returnedCatsArray) {
                console.log(returnedCatsArray);
            });
            console.log('Dragged. Order is: ' + orderList);
        }
    });

proc_cats.php

<?php
// Access the existing session
session_start();
// $catsArray is a session variable, in the format as above.
$catsArray = json_encode($_SESSION['categoriesPics']);
echo $catsArray;
?>

var orderList 将生成一个字符串,其中每个缩略图按 id 排列,并以逗号分隔:'42,35,95,12,57 '

控制台将 PHP 数组显示为 javascript 数组,但顺序不同。我希望能够将包含订单的字符串插入数组并将其保存回数据库中。它将与其相关类别相关联,类似于:

{"CategoryF":[],"CategoryA":["生活":["23,74,47,12,86,83,12"],"那里","人","土地","家庭"],"CategoryC":["各种"]}

但不能丢失顺序,因为网站的其他部分使用 array_keys 通过索引引用数组。控制台产生:

Object:
   CategoryA:Array[0]
   CategoryC:Array[0]
   CategoryF:Array[5]

我是不是错过了什么?我相信整个数组是一个对象而不是数组,因为它没有任何索引,而子类别有,并且它们以数组的形式呈现。 PHP 中的 array_keys 已经足够简单地解决到目前为止在网站其他区域的 PHP 端的任何索引问题,但我想知道是否有解决方案javascript 方面也同样简单吗?子类别目前有索引只是因为我还没有与它们关联和 orderList,所以我不会尝试不回溯并为数组构建索引,因为这会变得很困难(除非有一种简单的方法可以做到这一点,我忽略了)。

(这是我一小时前提出的问题的更具体版本,由于过于宽泛,我现在已将其删除)。

最佳答案

我相信您对“关联数组”和“数组”这两个术语有一点困惑。一个 php 关联数组对应一个 javascript 对象。 returnedCatsArray 的访问方式应与 $catsArray 类似。 IE。带 key 。如果这些键之一返回一个实际的数组,您就可以对其进行索引。

php array_keys 在 JavaScript 中将是 Object.keys(returnedCatsArray)。

关于关联 PHP 数组中的 Javascript 数组/对象顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29883917/

相关文章:

javascript - 根据其值隐藏文本框

php - 将图像 ID 传递给 URL 段

php - 在 PHP 中反向混淆纯文本字符串 url

php - 在数组中拆分数组(Mysql、PHP 和 Ajax)

javascript - 有没有办法使用 jquery 将替代文本添加到 img 标签?

javascript - 映射键以发出函数

php - 为什么 Linkedin Ugc Image Post 返回 500 错误?

c# - 尝试使用 XHR 联系 WCF 服务时出现 400 错误请求

php - 加载完成后剪切图像

javascript - 如何在 Angular 2 的同一组件中使用多个 ng-content?