Вы можете сделать это с помощью простого цикла (я использовал title
для определения сходства между элементами, но вы можете изменить это):
$arr = array(["title" => "Abercarn RFC", "category"=> "Club"], ["title" => "other title", "category"=> "BlaBla"], ["title" => "Abercarn RFC", "category"=> "Seniors"]);
$res = array();
foreach($arr as $e) {
if (isset($res[$e["title"]]))
$res[$e["title"]]["category"] .= ", " . $e["category"];
else $res[$e["title"]] = $e;
}
Если вы хотите удалить ключ массива, вы можете использовать [ 112].
$res
будет вашим желанием.
Нет никакого практического различия , обеспечил , Вы используете BOOL
переменные в качестве булевских переменных. C обрабатывает булевы выражения на основе того, оценивают ли они к 0 или не 0. Так:
if(someVar ) { ... }
if(!someVar) { ... }
означает то же как [1 110]
if(someVar!=0) { ... }
if(someVar==0) { ... }
, который является, почему можно оценить любой тип примитива или выражение как булев тест (включая, например, указатели). Обратите внимание, что необходимо сделать первого, не последнего.
Примечание, которое там является различие, если Вы присваиваете тупые значения так называемому BOOL
переменная и тестируете на определенные значения, поэтому всегда, используйте их в качестве булевских переменных и только присвойте им от их #define
значения.
Значительно, никогда не тестируйте булевские переменные с помощью символьного сравнения - это не только опасно, потому что someVar
мог быть присвоен ненулевое значение, которое не является ДА, но, по-моему, что еще более важно, этому не удается выразить намерение правильно:
if(someVar==YES) { ... } // don't do this!
if(someVar==NO ) { ... } // don't do this either!
, Другими словами, используйте конструкции, поскольку они предназначаются и документируются, чтобы использоваться, и Вы спасете себя от мира вреда в C.
Вы могли бы хотеть прочитать ответы на этот вопрос . Таким образом, в Objective C (из определения в objc.h):
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
#define OBJC_BOOL_DEFINED
#define YES (BOOL)1
#define NO (BOOL)0
Я думаю, что они добавляют ДА/НЕТ, чтобы быть более очевидными во многих случаях. Например:
[button setHidden:YES];
звуки лучше, чем
[button setHidden:TRUE];
Нет, ДА/НЕТ другой способ относиться к TRUE/ЛЖИ (1/0)