2013-09-03 2 views
1

Я уверен, что я слишком задумываюсь об этом, любая помощь, чтобы меня направить прямо оценили. Мне нужно вытащить две переменные массива и поместить их в ссылку, чтобы я мог применить их к другой форме, чтобы изменить их соответствующие массивы (эти ссылки используются для вытягивания имен получателей и их значений uid, которые хранятся в сеансе массивы.) Итак, в моем foreach строка «$ contactlistunique as $ rec», похоже, работает нормально, чтобы вытащить имя пользователя, но теперь мне нужно выяснить способ потянуть объект uid. Операции Foreach не допускают множественные условия, так что это самый умный способ сделать это?Вытягивание двух объектов из двух отдельных массивов в foreach

<?php 
$contactlistuidunique = array_unique($_SESSION['recipientlist']); 
$contactlistunique = array_unique($_SESSION['contactlist']); 
foreach ($contactlistunique as $rec) 
    { 
    echo "<font color=#808080><a href='removecontact.php?contact=$recuid&recipient=$rec' STYLE='TEXT-DECORATION: NONE'> 
    <font color=#808080>" . $rec . "</a></font>"; 
    } 
?> 
+0

Вы пробовали цикл for? –

+0

, если вы используете цикл for, вы можете создать переменную для каждого (или получить доступ к ней напрямую), используя $ contactlistuidunique [$ i], где $ i является вашим приращением. –

+0

Это действительно невозможно без какого-либо общего ключа между ними. Предположительно, записи в вашем '$ contactlistunique' соответствуют записям в вашем массиве' $ contactlistuidunique'. Как вы можете вытащить соответствующие данные без какой-либо ссылки? Если у вас его уже есть, то вы просто ответили на свой вопрос. Если нет, то вы должны создать его. –

ответ

1

Попробуйте, хотя вопрос не очень понятно мне

<?php 
$contactlistuidunique = array_unique($_SESSION['recipientlist']); 
$contactlistunique = array_unique($_SESSION['contactlist']); 
foreach ($contactlistunique as $key=>$rec) 
{ 
    echo "<font color=#808080><a href='removecontact.php?contact=".$contactlistuidunique[$key]."&recipient=$rec' STYLE='TEXT-DECORATION: NONE'> 
    <font color=#808080>" . $rec . "</a></font>"; 
} 
?> 
+0

Я бы добавил 'if (isset ($ contactlistuidunique [$ key]))' для здравого смысла. –

1

Основываясь на вас комментарии, я советую вам не использовать array_unique, но сделайте следующее:

<?php 
$isBefore = array(); 
foreach ($_SESSION['contactlist'] AS $key => $rec) 
{ 
    if (!in_array($rec, $isBefore)) { 
    $isBefore[] = $rec; 
    echo "<font color=#808080><a href='removecontact.php?contact=" . $_SESSION['recipientlist'][$key] . "&recipient=$rec' STYLE='TEXT-DECORATION: NONE'><font color=#808080>" . $rec . "</a></font>"; 
    } 
} 

Таким образом отображаются только уникальные значения и сохраняются ключи.

Смежные вопросы