Я думаю, что вы ищете array_column, который извлекает один столбец из многомерного массива.
$id = array_column($arr, "ID");
var_dump($id);
Возвращает:
array(3) {
[0]=>
string(2) "45"
[1]=>
string(2) "25"
[2]=>
string(2) "23"
}
Или вы можете использовать третий аргумент в качестве идентификатора и получить следующий вывод:
$id = array_column($arr, "title","ID");
var_dump($id);
/*array(3) {
[45]=>
string(4) "home"
[25]=>
string(13) "articleholder"
[23]=>
string(12) "article page"
}*/
Для меня это зависит от того, кто собирается быть использованием.h файла. Если это - файл, в основном внутренний к модулю, то я склонен помещать крошечные методы в заголовок. Если это будет более внешний заголовочный файл, который представляет более фиксированный API, то я помещу все в .cpp файлы. В этом случае я буду часто использовать Идиому PIMPL для полного брандмауэра компиляции.
Компромиссы, которые я вижу с помещением их в заголовках:
Я сказал бы, что заголовочные файлы должны быть об интерфейсе, не реализации. Я поместил их в .cpp.
Для меня это зависит от того, что я делаю с кодом. Для кода, который я хочу сохраняемый и длиться со временем, я поместил все в .cc файл по следующим причинам:
Но это вовсе не значит то, что я не играю быстрый-и-грязный с правилами иногда и помещаю вещи в.h файлы при реализации чего-то действительно быстро, но для кода я серьезно отношусь ко мне весь код (независимо от длины) в .cpp файле. Для больших проектов (часть из) правила там по причине, и после них может быть достоинство.
Говоря, о которых, я просто думал о еще одном сценарии Perl, который я могу взломать вместе для нахождения нарушений инструкций по кодированию. Хорошо быть популярным.:)
Я поместил, помещает все единственные лайнеры в заголовок, пока они не требуют слишком много дополнительные включенные заголовки (потому что вызывающие методы других классов). Также я не пытаюсь поместить весь код в одну строку, таким образом, я могу поместить большинство методов в заголовок :-)
Но Josh упомянул серьезное основание поместить их в .cpp так или иначе: если заголовок для наружного применения.
Я предпочитаю сохранять.h файл максимально чистым. Поэтому небольшие функции, которые так просты, как получают/устанавливают меня часто, используют, чтобы вставить отдельный файл как встроено определенные функции и затем включать тот файл (где я использую расширение .inl) в.h заголовочный файл:
// foo.h
class foo
{
public:
int bar() const;
private:
int m_bar;
};
#include "foo.inl"
// foo.inl
inline
int foo::bar() const
{
return m_bar;
}
Я думаю, что это дает лучший из двух миров, одновременно скрывая большую часть реализации от заголовка, и все еще сохраните преимущество встраивания простого кода (как показывает опыт, я сохраняю его в самое большее 3 операторах).
Я в значительной степени всегда следую за подразделением объявления их в заголовке и определения в источнике. Каждый раз, когда я не делаю, я заканчиваю тем, что имел необходимость возвратиться и сделать это любой путь позже.
Я использую следующее правило: заголовок для объявления, файл кода для реализации. Это становится для фактического, когда Ваш заголовок был бы использованием за пределами проекта - чем более легкий, Ваш заголовок, затем это - больше используемого комфорта
Я предпочитаю помещать их в .cpp файл ради быстрых времен компиляции/ссылки. Даже крошечные остроты (пустые виртуальные деструкторы!) может аварийно завершить Ваше время компиляции, если они инстанцируют много. В одном проекте я мог сократить время компиляции на несколько секунд путем перемещения всех виртуальных деструкторов в .cpp файлы.
С тех пор я продаюсь на этом, и я только поместил бы их в заголовок снова, если профилировщик говорит мне, что я могу получить прибыль от встраивания. Единственный недостаток - Вы, нуждаются в большем количестве ввода, но если Вы создаете .cpp файл, в то время как Вы пишете заголовок, Вы можете часто просто copy&paste объявления и заполнять их в .cpp файле, поэтому дело не в этом плохо. Хуже, конечно, если Вы позже узнаете, Вы хотите переместить материал в .cpp файл.
Хороший побочный эффект состоит в том, что чтение материала более просто, когда у Вас есть только документация и объявления в Вашем заголовке, особенно если новые разработчики присоединяются к проекту.