PHP сравнить значения массива, если есть одинаковые строки - PullRequest
0 голосов
/ 09 февраля 2020

У меня ситуация с двумя массивами. Я хочу сравнить строку с массивом, только если status => active в двух элементах show array, если status не активен, из элемента игнорирования массива.

$args_1 = array(
                **'status' => 'active',** // only if also active in $args_2
                'number' => 'all',
                'object_id' => array(2)
            );
            $args_2 = array(
                **'status' => 'active',** // only if also active in $args_1
                'number' => 'all',
                'object_id' => array(3)
            );
$member  = et_member( $args_1, $args_2 );       
            // User Loop
            if ( ! empty( $member ) ) {
...........

Только для общего ресурса: Я пробовал с

if(isset($args_1['status']) && $args_2['status'] == 'active') // but doesn't work

Спасибо,

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Я ценю ваши отзывы.

Я пробовал, но не работает, контролировал только $ args_1

$args_1 = status active 
$args_2 = status pending
Member showed in list in. So $args_2 is in pending.

$args_1 = status pending
$args_2 - status active
Member not showed in list because $args_1 is pending

Так что это контролируется только $ args_1, если активно, не проверить, есть ли в обоих массивах одинаковые значения 'active'

Я хочу показать, только когда $ args_1 и $ args_2 имеют статус активный, если один из $ args имеет статус неактивный, большинство игнорирует этот элемент

Спасибо снова

0 голосов
/ 09 февраля 2020

if(isset($args_1['status']) && $args_2['status'] == 'active') не то, что вы хотите, поэтому он терпит неудачу (хотя, учитывая ваши данные, он должен быть успешным, даже если он неверен). Вам необходимо проверить наличие обеих ключей, а затем выполнить условие для их значений.

Например

$args_1 = array(
	'status' => 'active', // only if also active in $args_2
	'number' => 'all',
	'object_id' => array(2)
);

$args_2 = array(
	'status' => 'active', // only if also active in $args_1
	'number' => 'all',
	'object_id' => array(3)
);
			
if (isset($args_1["status"])  && isset($args_2["status"]) && $args_1["status"] == "active" && $args_2["status"] == "active") {
	
	echo "success";
}
else {

	echo "failure";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...