преобразовать массив в объект JSON и вызвать в AJAX

-3
$res = array:3 [▼
  0 => array:18 [▼
    "id" => 1
    "smval" => "xys"
  ]
  1 => array:18 [▼
    "id" => 3
    "smval" => "asss"

  ]
  2 => array:18 [▼
    "id" => 4
    "smval" => "deg"

  ]
]

Ожидайте результата:

{first_id: 1, second_i d: 3, third_id: 4}

Я хочу преобразовать этот массив в объект. Поэтому я могу позвонить в ajax

{first_id: 1, second_i d: 3, third_id: 4}

  • 0
    Вы начали хорошо, но потом перестали показывать то, что вы на самом деле пытались. Вы пробовали что-нибудь?
  • 0
    Вы можете использовать json_decode () и json_encode () для кодирования / декодирования строки json / массива php
Показать ещё 1 комментарий
Теги:

2 ответа

0

Используйте json_encode для преобразования Array в Json.

$res = [ 0 => [ "id" => 1, "smval" => "xys" ],
  1 => [ "id" => 3, "smval" => "asss" ],
  2 => [ "id" => 4 , "smval" => "deg" ]
];

$json = json_encode($res);

print_r($json);
  • 0
    Я не хочу, чтобы все данные просто нужны значения идентификатора в формате JSON
0

Вы можете использовать динамические свойства для достижения этого:

$ids = new \stdClass(); //Laravel way due to namespacing
//$ids = new stdClass(); //create a generic empty object
$count = 1;

foreach ($res as $key=>$val){
    $ids->{"id".($count++)} = $val["id"]; //assign the property to the object dynamically
}

echo(json_encode($ids));

Если вам нужен определенный набор имен, вы можете использовать другой массив для имен:

$ids = new \stdClass(); //Laravel way due to namespacing
//$ids = new stdClass(); //create a generic empty object
$names = ["name1", "name2", "name3"];
$count = 0;

foreach ($res as $key=>$val){
    $ids->{$names[$count++]} = $val["id"]; //assign the property to the object dynamically based on the names array
}

echo(json_encode($ids));
  • 0
    App \ Http \ Controllers \ stdClass 'не найдена ошибка, которую я нашел
  • 0
    Если вы используете Laravel, попробуйте $ids = new \stdClass();
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню