2015-10-09 2 views
3

Поэтому у меня есть список, который выглядит следующим образом:Wrap массива в пользовательскую строку на основе массива

$mylist = array('100003028593816', '1784394111', '100008137385157', '100000462582000','100001633550680', '100000757743079'); 

(Этот список может меняться в зависимости от различных входов и т.д. Это просто пример)

Я хочу создать STRING из этого массива, который выглядит следующим образом.

$string = '{"100003028593816":1,"1784394111":1,"100008137385157":1,"100000462582000":1,"100001633550680":1,"100000757743079":1}' 

(Примечание: Посмотрите, как они одни и те же значения, как указано выше, они просто завернутые по-разному, что, как они должны быть размещены так, я очень сильно хочу, чтобы принимать значения из массива и обручем.. их как { «значению1»: 1, «значение2»: 1}. и т.д.

в питоне я использовал

mystring= '{' + ','.join(map(lambda x: '"' + x + '":1', mylist)) + '}' 

что сделал трюк я просто не уверен, что proficent способ сделать это в PHP есть.

ответ

3

Просто используйте array_fill_keys и кодирования массива с json_encode:

echo json_encode(array_fill_keys($mylist, 1)); 

Выходные:

{"100003028593816":1,"1784394111":1,"100008137385157":1,"100000462582000":1,"100001633550680":1,"100000757743079":1} 
+0

Я никогда не использовал 'array_fill_keys()' и она даже не приходила мне в голову. – AbraCadaver

+3

Не говорите мне об этом, я просто нашел его случайно. – Federkun

Смежные вопросы