2015-06-03 9 views
0

я получаю следующий массив из моего заднего конца:Петля через массив с объектами

[Object { 7="77.105.239.8", 10="77.105.239.11", 18="77.105.239.19", more...}] 

Как я могу использовать нг-параметры, чтобы заполнить мой выберите выпадающий список с ИПС из массива?

Массив выше, является результатом array_diff из моего заднего конца В PHP:

foreach($ips as $ip) 
       { 
        $taken[] = $ip['ip']; 
       } 

       $start = (ip2long($serie->net) + 1); 
       $antal = pow(2,(32-$serie->mask)); 

       for($i = $start; $i < ($start+$antal-3); $i++) 
       { 
        if(end(explode(".", long2ip($i))) != "0") 
        { 
         $possible_ips[] = long2ip($i); 
        } 
       } 

       $poss = array_diff($possible_ips, $taken); 

       return $poss; 

ответ

0

Если вы не хотите или не можете исправить данные, отформатированные как ответ m4lt3, вам необходимо выполнить предварительную обработку данных, прежде чем пытаться связать их.

var originalData = [{ 7: "77.105.239.8", 10: "77.105.239.11", 18: "77.105.239.19"}]; 
var originalObject = originalData[0]; 
var newData = []; 
for (var i in originalObject) { 
    newData.push({'id': i, 'ip': originalObject[i]}); 
} 
$scope.ipList = newData; 

... то вы можете связать IPList используя ngOptions.

+0

Спасибо, но я хочу исправить это в своем бэкэнде, но я не знаю, как принимать значения. В моей переменной $ poss и создать правильный массив? – Bryan

0

На самом деле вы получаете массив только с одним полем, которое содержит объект с данными, вам нужно. Мое предложение состоит в том, чтобы исправить это в бэкэнд. Чтобы вы получили то, что вам нужно, -> реальный массив. Как это:

[ 
    { "id":7, "ip":"77.105.239.8"}, 
    { "id":10, "ip":"77.105.239.150"}, 
    { "id":12, "ip":"77.105.239.12"} 
] 

Поскольку array_diff возвращает assoziative массив, нам нужно, чтобы превратить его в не assoziative массива и возвращает его (либо с json_encode или нет, в зависимости от настройки):

... 
$poss = array_diff($possible_ips, $taken); 
$res = []; 
foreach ($poss as $key => $value) { 
    $res[] = $value; 
} 
return json_encode($res); 
+0

Спасибо за ваш ответ. Есть ли у вас какие-либо рекомендации по исправлению этого вопроса в моем бэкэнде? – Bryan

+0

Я понятия не имею, какие данные у вас есть, как вы его получите и какую технологию вы используете. Но, как правило, вы должны создать массив JSON-объектов. – m4lt3

+0

Im с использованием рамки zend. Я хочу взять значения из моей переменной $ poss и создать правильный массив It, но я не знаю, как это сделать. – Bryan

0

Я думаю, что вы можете оставить свою функцию, как есть, за исключением изменения заявления возврата к: return json_encode($poss);

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