亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將值從 php 關聯數組推送到 jquery 數組?

如何將值從 php 關聯數組推送到 jquery 數組?

PHP
陪伴而非守候 2021-11-05 18:39:36
我創建的關聯數組php中的一個loop是這樣的:$coordinates[] = array("coordinates"=>[$lat, $lng], "site"=>"ext");$coordinates[] = array("coordinates"=>[$lat, $lng], "site"=>"curr");這使:[0]=>  array(2) {    ["coordinates"]=>    array(2) {      [0]=>      string(18) "40.836132854296686"      [1]=>      string(17) "8.404270310882566"    }    ["site"]=>    string(4) "curr"  }  [1]=>  array(2) {    ["coordinates"]=>    array(2) {      [0]=>      string(10) "40.8998985"      [1]=>      string(9) "9.5177142"    }    ["site"]=>    string(4) "curr"  }  [2]=>  array(2) {    ["coordinates"]=>    array(2) {      [0]=>      string(17) "40.71976910000001"      [1]=>      string(17) "8.563560499999994"    }    ["site"]=>    string(3) "ext"  }}現在我需要推動每一對坐標,例如:["coordinates"]=>    array(2) {      [0]=>      string(10) "40.8998985"      [1]=>      string(9) "9.5177142"    } 到一個JS數組中,并對另一個具有[site]值的數組執行相同的操作,例如:["site"]=>    string(3) "ext"在JS我做:      var coordsJson = '<?php echo json_encode($coordinates); ?>';      var coords = JSON.parse(coordsJson);      console.log(coordsJson);這給了我:[{"coordinates":["40.836132854296686","8.404270310882566"],"site":"curr"},{"coordinates":["40.8998985","9.5177142"],"site":"curr"},{"coordinates":["40.71976910000001","8.563560499999994"],"site":"ext"}]我需要coords是一個有效的數組,將成對坐標作為對象并推[site]送到一個數組,例如,site = []但我不確定如何從關聯數組中獲取值。我試著推myCoords.push(coords['coordinates']);但這是錯誤的。我相信我應該循環的json響應,但如何push來JS呢?更新我基本上需要這樣結構的js數組:0: (2) ["40.836132854296686", "8.404270310882566"]1: (2) ["40.8998985", "9.5177142"]2: (2) ["40.71976910000001", "8.563560499999994"]并具有相同但對于一個數組site[],字面上尋找2 個數組 coords[]和site[]
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

與原生 PHP 相比,在 JavaScript 中使用數組是一種樂趣。你總是可以使用循環,但我更傾向于采用函數式方法。


首先,讓我們簡化將數據從 PHP 移動到 JS:


var coordsJson = '<?php echo json_encode($coordinates); ?>';

var coords = JSON.parse(coordsJson);

您不需要將其包裝在字符串中然后進行解析。


const coordinates = <?php echo json_encode($coordinates); ?>;

請注意,我的示例將使用 ES6 編寫。


接下來我們可以使用 map 來構建包含我們需要的數據的新數組。


// this could be a one liner but expanding for explanatory purposes.

const coordinatePairs = coordinates.map((coordinate) => {

    // here we're using the spread operator to expand our object.

    // it's a simple way to convert an object into an array.

    return [...coordinate.coordinates];

});

現在讓我們遵循一個類似但更簡單的網站流程。


const sites = coordinates.map((coordinate) => (coordinate.site));


查看完整回答
反對 回復 2021-11-05
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

Get specific element from each sub array 中獲取,您需要使用 array_column 來獲取特定的子數組值。

$coords = array_column($coordinates, 'coordinates');
$sites = array_column($coordinates, 'sites');

我無法在我身邊測試它,因為我不在 PC 上。請讓我知道這是否有效。


查看完整回答
反對 回復 2021-11-05
  • 2 回答
  • 0 關注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號