Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何添加关联数组?_Php - Fatal编程技术网

Php 如何添加关联数组?

Php 如何添加关联数组?,php,Php,我有一份教师名单,其性质如下: teacher 1 skills = English, Math teacher 1 gender = Male teacher 2 skills = Spanish, Math, Law teacher 1 gender = sex = Female teacher 3 skills = English, Geography teacher 3 gender = Male 首先,我想告诉你有多少英语(以及任何其他事情)教师,因为技能可以是多种多样的,所以

我有一份教师名单,其性质如下:

teacher 1 skills = English, Math
teacher 1 gender = Male

teacher 2 skills = Spanish, Math, Law
teacher 1 gender =  sex = Female

teacher 3 skills = English, Geography
teacher 3 gender = Male
首先,我想告诉你有多少英语(以及任何其他事情)教师,因为技能可以是多种多样的,所以我要做的是检查数组中是否有重复项,并对其进行计数:

     $stack = array();
     $blogusers = get_users( 'orderby=nicename&role=author' );
  foreach ( $blogusers as $user ) {
     $myUsers = $user->user_description (this is the skill list);
     $mystrings = strtolower($user->user_description);
     $descTokens = explode(',', $mystrings);
     $descTokens = array_map('trim',$descTokens);
     $stack = array_merge($stack, $descTokens);
  }
     $count_values = array();
     foreach ($stack as $a) {
       @$count_values[$a]++;
     }
     $total_duplicates = 0;
     foreach ($count_values as $a) {
       if($count_values[$a]<=1){
          unset($count_values[$a]);
       } else{
          $total_duplicates += $count_values[$a];
       }
      }
但我也有性别,所以理想情况下我想

2 English teachers, 1 male, 1 male
2 Math teachers, 1 male, 1 female
1 Spanish, 1 female
1 Law, 1 female
1 Geography, 1 male
我试着加上:

      $sex = array();
      $user_sex = get_user_meta( $the_user_id, $gender, $single ); 
      array_push($sex, $user_sex);
      foreach($descTokens as $lang){
        $userSex[$lang] += $user_sex;  
      }
      foreach ($count_values as $key=>$count ) {
        echo '<li>'.$count.' di <strong>'.$key.' gender '. $userSex[$key] .'</li>';
      }
数组(11){[0]=>string(8)“francese”[1]=>string(7)“chimica”[2]=> 字符串(6)“fisica”[3]=>字符串(7)“scienze”[4]=>字符串(7)“inglese” [5] =>字符串(6)“fisica”[6]=>字符串(7)“chimica”[7]=>字符串(8) “spagnolo”[8]=>string(8)“francese”[9]=>string(6)“fisica”[10]=> 字符串(8)“意大利语”}

数组(3){[0]=>string(7)“maschio”[1]=>string(7)“maschio”[2]=> 字符串(7)“femmina”}

代码:


“我有一个具有属性的教师列表”-这在代码中实际上是什么样子的?您使用的是什么数据结构?自定义对象?教师是否在
$user
变量中?这是一个对象还是数组?你能提供示例输入数组吗?不要像这样发布问题?告诉我们你在哪里得到错误?@domdomquestion用var更新_dumps@Bhaskar问题更新为var_转储
2 English teachers, 1 male, 1 male
2 Math teachers, 1 male, 1 female
1 Spanish, 1 female
1 Law, 1 female
1 Geography, 1 male
      $sex = array();
      $user_sex = get_user_meta( $the_user_id, $gender, $single ); 
      array_push($sex, $user_sex);
      foreach($descTokens as $lang){
        $userSex[$lang] += $user_sex;  
      }
      foreach ($count_values as $key=>$count ) {
        echo '<li>'.$count.' di <strong>'.$key.' gender '. $userSex[$key] .'</li>';
      }
  <?php
    $stack = array();
    $userID = array();
    $nPost = array();
    $listmaterie = array();
    $materie = array();
    $gender = 'sesso';
    $single = true;
    $sex = array();
    $blogusers = get_users( 'orderby=nicename&role=author' );
    $userSex = array();
    foreach ( $blogusers as $user ) {
        $myUsers = $user->user_description;
        $mystrings = strtolower($user->user_description);
        $descTokens = explode(',', $mystrings);
        $descTokens = array_map('trim',$descTokens);
        $stack = array_merge($stack, $descTokens);
        $the_user_id = $user->ID;
        $numPosts = count_user_posts( $the_user_id );
        array_push($userID, $the_user_id);
        array_push($nPost, $numPosts);
        $user_sex = get_user_meta( $the_user_id, $gender, $single ); 
        array_push($sex, $user_sex);
        foreach($descTokens as $lang){
          $userSex[$lang] += $user_sex;  
        }
     }
       // get the count for each language by counting the duplicate strings;
     $count_values = array();
     foreach ($stack as $a) {
       @$count_values[$a]++;
     }
     $total_duplicates = 0;
     foreach ($count_values as $a) {
       if($count_values[$a]<=1){
          unset($count_values[$a]);
       } else{
          $total_duplicates += $count_values[$a];
       }
      }
     $count_sex = array();
     foreach ($sex as $b) {
       @$count_sex[$b]++;
     }
     $total_duplicates_sex = 0;
     foreach ($count_sex as $b) {
       if($count_sex[$b]<=1){
          unset($count_sex[$b]);
       } else{
          $total_duplicates_sex += $count_sex[$b];
       }
      }
    ?>
    <h3 class="margin-top-40">Numero complessivo docenti su Jikū:</h3>
    <ul class="margin-top-20 margin-bottom-20">
    <?php
      $totalInsegnanti = count($userID);
      echo '<li>'. $totalInsegnanti .'</li>'; 
    ?>
    </ul>
    <h3>Totale insegnanti per materia su Jikū:</h3>
    <ul class="margin-top-20">
      <?php
        foreach ($count_values as $key=>$count ) {
          echo '<li>'.$count.' di <strong>'.$key.' gender '. $userSex[$key] .'</li>';
        }
      ?>
    </ul>
    <h3>Totale insegnanti sesso su Jikū:</h3>
    <ul class="margin-top-20">
      <?php 
        foreach ($count_sex as $key=>$count_sex) { 
            echo '<li>'.$count_sex.' <strong>'.$key.'</strong></li>'; 
        }
      ?>
    </ul>
var_dump($stack);
var_dump($sex);
foreach($blogusers as $user){
    foreach(explode(', ',$user->user_description) as $skill){  //"comma then space" delimited
        $result[$skill][]=get_user_meta($user->ID,'sesso','true');  // push user's gender into subject's array
    }
}

foreach($result as $subject=>$gender_array){
    echo "<div>",sizeof($gender_array)," $subject teachers";
    $count_genders=array_count_values($gender_array);  // avoids php NOTICE @ array_walk
    array_walk($count_genders,function($v,$k){echo ", $v $k",($v!=1?"s":"");});
    echo "</div>";
}
2 English teachers, 2 Males
2 Math teachers, 1 Male, 1 Female
1 Spanish teachers, 1 Female
1 Law teachers, 1 Female
1 Geography teachers, 1 Male