В то время как циклы и записи записей в одном foreach с другим - PullRequest
0 голосов
/ 15 октября 2019

Вот код, который я буду использовать:

$wp_query = new WP_Query([
    'post_type' => 'office',
    'post_status' => 'any',
    'posts_per_page' => -1,
]);

$offices = [];
if (count($wp_query->posts) > 0) {
    $offices = $wp_query->posts;
}

$settings['started'] = time();

foreach ($offices as $office) {
    $key['_office_id'] = get_post_meta($office->ID, '_office_id', true);
}

foreach ($records as $record) {
    $record_key = strtoupper(str_replace(' ', '',
        trim($record->location_id) . trim($record->business_unit)));
}

$ key выводит следующее:

Array
(
    [_office_id] => ATLANTAFHUSA
)
Array
(
    [_office_id] => AUSTINFHUSA
)

$ record_key выводит следующее:

ATLANTAFHUSA
AUSTINFHUSA

Вот то, чего я пытаюсь достичь ... Я хочу создать цикл while внутри записей foreach, который будет смотреть на $ record_key и, если есть совпадение с $ key ['_ office_id'], идти вперед и выводить эхоЭто вне.

То, что я пытался сделать внутри $ records foreach:

while ($record_key == $key['_office_id']) {
    if ($record_key == $key['_office_id']) {
        echo $record_key . " has a matching record.";
    } else {
        echo $record_key . " does not have a matching record.";
    }
}

enter image description here

1 Ответ

1 голос
/ 15 октября 2019
$keys = [];
// Store all office ids
foreach ($offices as $office) {
    $keys[] = get_post_meta($office->ID, '_office_id', true);
}

foreach ($records as $record) {
    $record_key = strtoupper(str_replace(' ', '',
        trim($record->location_id) . trim($record->business_unit)));

    // Check if current `record_key` is in `$keys` array
    if (in_array($record_key, $keys)) {
        echo 'Record key is in keys';
    } else {
        // do something else
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...