Чтобы упростить ваш код, я постарался сделать это за несколько шагов. Это сохраняет движущиеся данные несколько раз (комментарии в коде) ...
$json = json_decode($string, true);
$json2 = json_decode($string2, true);
// Create $result with an array indexed by id_question
$result = array_column($json, null, "id_question");
foreach($json2 as $key)
{
// If question doesn't exist
if(!isset($result[$key['id']]))
{
// Set values from new question
$row=$key;
$row["id_question"]=$key['id'];
$row["id"]=$key['question'];
// Remove this element as not needed in new array
unset ( $row['question']);
$row["answer"]=null;
$row["pi"]=null;
$row["ca"]=null;
$row["pic"]=null;
$row["new_deadline"]=null;
$row["reason"]=null;
$row["notes"]=null;
$row["deadline"]=null;
// Add to result
$result[]=$row;
}
else
{
// Question is already present, just add in new details
$result[$key['id']]["type"]=$key['type'];
$result[$key['id']]["last_root"]=$key['last_root'];
$result[$key['id']]["exist_good"]=$key['exist_good'];
$result[$key['id']]["exist_not_good"]=$key['exist_not_good'];
$result[$key['id']]["not_exist"]=$key['not_exist'];
$result[$key['id']]["n_a"]=$key['n_a'];
}
}
// Use array_values() to remove keys (the question ID) and encode result
$json=json_encode(array_values($result));
print_r($json);
Необходимо прочитать сообщение Jeff о передаче в дар 5 000$ к проекту с открытым исходным кодом и если проекты с открытым исходным кодом могут на самом деле извлечь выгоду из пожертвований. В основном координатор проекта заявил, что деньги находились в течение трех месяцев, не будучи затронутым, потому что они не могли найти соответствующее использование для них.
Так или иначе я нахожу проекты с открытым исходным кодом, которые влияют на меня, большинство является большими - Linux, Firefox, GNU, SVN, и т.д. Я думаю, что лучшая вещь для OSS распространяет слово, увеличивая принятие, осведомленность и участников.
Я использую Википедию почти каждый день в офисе. Это уверенный сохраняет меня много времени. Хотя это не "обычный" инструмент (платформа / исполняемый файл), я действительно думаю, что это - справедливый кандидат.
Наименьший проект, который Вы используете, который приносит Вам большую часть пользы, вероятно, нужен и заслуживает Ваших денег больше всего.
Передача в дар индивидуальному проекту, а не чему-то намного большему как Mozilla Foundation является, вероятно, лучшим использованием 100$. Это непосредственно поощрит его работать над тем продуктом и также давать ему хорошее чувство, что люди там используют его программное обеспечение и благодарны за него.
Платформа JavaScript по Вашему выбору. Контакт со всеми особенностями перекрестного браузера является кошмаром, и разработчики инфраструктуры сохраняют много веб-разработчиков много времени, занимаясь теми проблемами.
Я распространил 100$ (если это - Ваш бюджет пожертвования), и пожертвуйте различным проектам. Если Вы - компания, Вы могли бы также добавить 0.:)
valgrind является довольно полезным инструментом для проверки профилирования и хорошо сохраняется.