Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在关联数组的中间拼接元素_Php_Javascript_Arrays_Associative Array_Splice - Fatal编程技术网

Php 在关联数组的中间拼接元素

Php 在关联数组的中间拼接元素,php,javascript,arrays,associative-array,splice,Php,Javascript,Arrays,Associative Array,Splice,我想将元素添加到对象中的数组中,我可以像这样访问该对象以检索数据 var event_id = events_data.event_id[i]["0"]; var event_title = events_data.event_title[i]["0"]; var selected_source = events_data.selected_source[i]["0"]; var channel_id = events_data.channel_id[i]["0"]; events\u dat

我想将元素添加到对象中的数组中,我可以像这样访问该对象以检索数据

var event_id = events_data.event_id[i]["0"];
var event_title = events_data.event_title[i]["0"];
var selected_source = events_data.selected_source[i]["0"];
var channel_id = events_data.channel_id[i]["0"];
events\u data是一个具有元素event\u id、event\u title等的对象。。。该对象是在这样的php函数中创建的

$return = array();
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title;
$return['selected_source'] = $selected_source;
$return['channel_id'] = $channel_id;
$return['channel_name'] = $channel_name;
$return['event_site'] = $event_site;
$return['event_url'] = $event_url;
$return['start_date'] = $start_date;
$return['start_time'] = $start_time;
$return['end_date'] = $end_date;
$return['end_time'] = $end_time;
$return['event_notes'] = $event_notes;

echo json_encode($return);
$.ajax({
    url: "get_events_data.php",
    type: "POST",
    dataType : 'json',
    data: { },
    cache: false,
    async: false,
    success: function (rdata) {
        events_data = rdata;
                  }
         });
编辑-添加的信息

json对象如下所示

$return = array();
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title;
$return['selected_source'] = $selected_source;
$return['channel_id'] = $channel_id;
$return['channel_name'] = $channel_name;
$return['event_site'] = $event_site;
$return['event_url'] = $event_url;
$return['start_date'] = $start_date;
$return['start_time'] = $start_time;
$return['end_date'] = $end_date;
$return['end_time'] = $end_time;
$return['event_notes'] = $event_notes;

echo json_encode($return);
$.ajax({
    url: "get_events_data.php",
    type: "POST",
    dataType : 'json',
    data: { },
    cache: false,
    async: false,
    success: function (rdata) {
        events_data = rdata;
                  }
         });
{“事件”是一个id:{“事件”事件。id:{“事件”是一个id:{“事件”事件。id:{“0:“0:“0:“0:“0:“事件”事件...事件.......................................................................................................................................................................................4“}]}

添加了结束信息

在javascript方面,我得到了如下的events_数据数组

$return = array();
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title;
$return['selected_source'] = $selected_source;
$return['channel_id'] = $channel_id;
$return['channel_name'] = $channel_name;
$return['event_site'] = $event_site;
$return['event_url'] = $event_url;
$return['start_date'] = $start_date;
$return['start_time'] = $start_time;
$return['end_date'] = $end_date;
$return['end_time'] = $end_time;
$return['event_notes'] = $event_notes;

echo json_encode($return);
$.ajax({
    url: "get_events_data.php",
    type: "POST",
    dataType : 'json',
    data: { },
    cache: false,
    async: false,
    success: function (rdata) {
        events_data = rdata;
                  }
         });
为了在javascript端向events_数据添加元素,我检查了添加新元素的索引,然后使用splice添加它。但是,由于数据是使用关联数组的[“0”]文本键检索的,因此我不知道如何指定拼接参数

for ( var n=0; n<events_data.event_id.length; n++ ) { 
   if ( current_event_id == events_data.event_id[n]["0"] ) {
       //splice_index = n;              
       events_data.event_id.splice(n,0,event_id);
       events_data.event_title.splice(n,0,event_title);
       events_data.selected_source.splice(n,0,selected_source);
       events_data.channel_id.splice(n,0,channel_id);
       events_data.channel_name.splice(n,0,channel_text);
       events_data.event_site.splice(n,0,event_site);
       events_data.event_url.splice(n,0,event_url);
       events_data.start_date.splice(n,0,start_date_string);
       events_data.start_time.splice(n,0,start_time_string);
       events_data.end_date.splice(n,0,end_date_string);
       events_data.end_time.splice(n,0,end_time_string);
       events_data.event_notes.splice(n,0,event_notes);
       break;
    }
}

for(var n=0;n答案很简单:


答案很简单:


看起来您正在将数组与对象混合,反之亦然。简而言之,如果您想要具有保证顺序的数字索引数据结构,请使用数组。如果您想要以字符串作为键(而不是数字)的关联数组这个数组是一个从PHP函数返回的JSON编码对象。它工作得很好。我只想知道如何在中间添加一个元素。如果我像这样读取EnvithCITE数组,var <代码> EnvithTea= EvestsDATA。EnvithToe[i] [[ 0 ] ]。>从EvsStDATA对象中,我如何在其中间添加一个元素?显示您的JSON比显示PHP更有帮助。原始问题被编辑来添加JSON对象,它看起来是这样的:<代码> { EnvithIdID”:[{20120131921556] },{“0”:“E20120310221512”},{“0”:“E2012031915803”},{“0”:“E20120309123705”},{“0”:<代码>“e20120307122044”},{“0”:“e20120306182514”},{“0”:“e20120309211714”},{“0”:“e20120314130727”},{“0”:“e20120319150532”},{“0”:“e20120319141928”},{“0”:“e20120319141201”},{“0”:“E2012030119326”},{“0”:“e20120301184354”}
。看起来你把数组和对象混为一谈,反之亦然。简而言之,如果你想要一个有保证顺序的数字索引数据结构,请使用数组。如果你想要一个以字符串作为键(而不是数字)的关联数组这个数组是一个从PHP函数返回的JSON编码对象。它工作得很好。我只想知道如何在中间添加一个元素。如果我像这样读取EnvithCITE数组,var <代码> EnvithTea= EvestsDATA。EnvithToe[i] [[ 0 ] ]。从EvsStDATA数据对象中,如何显示一个元素在它的中间?显示JSON比显示PHP更有帮助。原始问题被编辑来添加JSON对象,它看起来是这样的:<代码> { EnvithIdID”:[{20120131921556] },{“0”:“E20120310221512”},{“0”:“E2012031915803”},{“0”:“E20120309123705”},{“0”:e20120307122044“},{“0”:“e20120306182514”},{“0”:“e20120309211714”},{“0”:“e20120314130727”},{“0”:“e20120319150532”},{“0”:“e20120319141928”},{“0”:“e20120319141201”},{“0”:“e20120301193226”},{“0”:“e20120301184354”}。