2016-05-02 4 views
2

У меня такое массив "pollAnswers", который отображает:JSON массива с помощью PHP

Array 
(
    [0] => Sachin 
    [1] => Dhoni 
) 

в PHP, и я хочу его показать, как:

"pollAnswers":[ 
    {"pollAnswersID":0, "pollAnswer":"Sachin"}, 
    {"pollAnswersID":1, "pollAnswer":"Dhoni"} 
] 

на выходе JSON.

Я пробовал использовать array_fill_keys и array_flip, но это не решение для этого. Кажется, мне нужно разделить array_keys и array_values, а затем сделать некоторую конкатенацию, чтобы получить это, но я застрял здесь!

+1

вы должны заново создать свой массив. –

ответ

1
<?php 
$answerArray = []; 

foreach($yourArray as $key => $r) 
    $answerArray[] = ['pollAnswersId' => $key, 'pollAnswer' => $r]; 

echo json_encode($answerArray); 

Здесь вы идете.

+1

Не правильно создан как OP. –

3

Онлайн регистрация link

Попробуйте эту

$arr = array("Sachin", "Dhoni"); 

$sub_arr = array(); 
$final = array(); 

foreach($arr as $key => $val){ 
    $sub_arr['pollAnswersId'] = $key; 
    $sub_arr['pollAnswer'] = $val; 

    $sub_final[] = $sub_arr; 
} 

$final['pollAnswers'] = $sub_final; 
echo json_encode($final); 

результата

{"pollAnswers":[ 
    {"pollAnswersId":0,"pollAnswer":"Sachin"}, 
    {"pollAnswersId":1,"pollAnswer":"Dhoni"} 
]} 
+0

You konow Rising Pune Супергигантская команда Dhoni, Rishi Bro plz accept Answer. –

+0

Я не OP dude ... –

+0

Frayne расслабляется, просто шутит в индийском стиле @@ –

2

Вы можете попробовать с array_map.

$Array = array('Sachin', 'Dhoni'); 

$new = array_map(function($v, $k) { 
    return ['pollAnswersId' => $k, 'pollAnswer' => $v]; // return the sub-array 
}, $Array, array_keys($Array)); // Pass the values & keys 

var_dump(json_encode(array("pollAnswers" => $new))); 

Выход

"{"pollAnswers":[ 
    {"pollAnswersId":0,"pollAnswer":"Sachin"},    
    {"pollAnswersId":1,"pollAnswer":"Dhoni"} 
]}" 

Для более старых версий PHP.

return array('pollAnswersId' => $k, 'pollAnswer' => $v); 

Fiddle

+0

Не работает на php <= 5.3.0 –

+1

@PedroLobito Это сработает, если вы заменили синтаксис сокращенного массива. Хотя, OP не упомянул о версии. –

0

Попробуйте это:

$givenArray = array("Sachin","Dhoni"); 

$answerArray = []; 

foreach($givenArray as $key => $r) 
    $answerArray[] = ['pollAnswersId' => $key, 'pollAnswer' => $r]; 

echo $out = json_encode(array('pollAnswers' => $answerArray)); 
Смежные вопросы