2017-04-11 38 views
0

我正在阅读我的用户的大量数据,并将它们添加为关联数组以便能够加入数据。以下给出了正确的数组值,但结果我得到了0。为什么数组值为0?

<?php 
    $userID = array(); 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     $gender = 'sesso'; 
     $single = true; 
     $the_user_id = $user->ID; 
     array_push($userID, $the_user_id); 
     $myUsers = $user->user_description; 
     $user_sex = get_user_meta($the_user_id, $gender, $single); 
     $users[$user->ID] = array("description" => $myUsers , "gender" => $user_sex); 
    } 
    $roles = array(); 
    foreach($users as $id => $values){ 
     $temp_roles = explode(',', $values['description']); 
     foreach($temp_roles as $k => $v){ 
      $roles[trim($v)][$values['gender']][] = true; 
     } 
    } 

    ?> 
    <ul class="margin-top-20"> 
    <?php 
     foreach($roles as $skill => $genderB) { 
      $males = count($genderB['male']); 
      $females = count($genderB['female']); 
      $total = $males + $females; 
      echo $females; 
      echo "<li>We have ".$total." ".$skill." teachers, ".$males." males, ".$females." females</li>"; 
     } 
    ?> 
    </ul> 

我得到0,如果我做echo $females;和琴弦都得到0作为值

我们有0弗朗西斯教师,0男性,0女性

如果我这样做print_r($users[$user->ID]);权在第一个foreach结束时,我得到正确的结果tho

Array ([description] => francese, chimica, fisica, scienze [gender] => Array ([0] => maschio)) Array ([description] => inglese, fisica, chimica, spagnolo [gender] => Array ([0] => maschio)) Array ([description] => francese, fisica, italiano [gender] => Array ([0] => femmina)) 

如果我在第二的foreach做到底print_r($roles);我只得到角色值,而不是性别

Array ([francese] => Array () [chimica] => Array () [fisica] => Array () [scienze] => Array ()) Array ([francese] => Array () [chimica] => Array () [fisica] => Array () [scienze] => Array () [inglese] => Array () [spagnolo] => Array ()) Array ([francese] => Array () [chimica] => Array () [fisica] => Array () [scienze] => Array () [inglese] => Array () [spagnolo] => Array () [italiano] => Array () 

再次,如果我在第二的foreach做到底print_r($temp_roles);我得到

Array ([0] => francese [1] => chimica [2] => fisica [3] => scienze) Array ([0] => inglese [1] => fisica [2] => chimica [3] => spagnolo) Array ([0] => francese [1] => fisica [2] => italiano) 

我不明白为什么我收到0值,所有的人都在年底

回答

0

在你的数据的性别是由femmina和定义。在你的代码中,你检查femalemale

我发现的另一个问题是,你不必同时拥有男性和女性的老师。如果你把你的错误报告上,有了这个代码,你会得到

Undefined index: female(或男性)

如果没有女性。你可以在$females = isset($genderB['female']) ? count(genderB['female']): 0;附近工作。或者如果声明当然是“全”。

+0

哦,请不要相信它!你不知道我花了多少小时,这是一个愚蠢的错误!非常感谢你,你已经度过了我的一天! –

+0

关于这个错误,它可能发生在男性我也想,我将不得不插入isset甚至男性? –

+0

它写得对吗? $ females = isset($ genderB ['female'])?计数(genderB ['femaile']:0还是缺少a)? –