Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

Php 将其作为一个维度数组

Php 将其作为一个维度数组,php,arrays,Php,Arrays,我有一个制作维度数组的问题,请帮助我使用php,这是我的场景 $arrayname = array["john","mell","ben","henz","len"]; $arrayage = array["10","15","58","12","13"]; $arraygender = array["male","female","male","male","female"]; 我想让它像 $arrayidentify = array['name' => 'john', 'age'

我有一个制作维度数组的问题,请帮助我使用php,这是我的场景

$arrayname = array["john","mell","ben","henz","len"];
$arrayage = array["10","15","58","12","13"];
$arraygender = array["male","female","male","male","female"]; 
我想让它像

$arrayidentify = array['name' => 'john', 'age' => '10', 'gender' => 'male'];
等等,

请帮忙,谢谢

     class Person { 
        public $name = "pname";
        public $age = "21";
        public $gender = "MaleOrFemale";

        function __construct($name,$age,$gender){
        $this->name = $name;
        $this->age = $age;
        $this->gender = $gender;
    }
}
您可以使用OOP方法并创建一个对象来存储人员的数据并创建人员数组

范例

$steve = new Person("Steve Jobs","60","Male"); 
这将创建一个名为steve的person对象$steve,60岁,性别为男性

可以根据需要创建may person对象并将其放置在数组中

$jeff = new Person("Jeff Bezos","50","Male");
$bill = new Person("Bill Gates","64","Male");
将以上所有内容放在一个数组中,如下所示

$persons = array($steve,$jeff,$bill);
尝试下面的代码自学并理解它。我在w3schools.com中使用过对象和构造函数

<?php 


class Person { 
    public $name = "pname";
    public $age = "21";
    public $gender = "MaleOrFemale";

    function __construct($name,$age,$gender){
    $this->name = $name;
    $this->age = $age;
    $this->gender = $gender;
}
}
$steve = new Person("Steve Jobs","60","Male");
$jeff = new Person("Jeff Bezos","50","Male");
$bill = new Person("Bill Gates","64","Male");

$persons = array($steve,$jeff,$bill);

foreach($persons as $person){
    echo"Person Name : ".$person->name."<br>";
    echo"Person Age : ".$person->age."<br>";
    echo"Person Gender : ".$person->gender."<br><br>";

}
?>

我认为@ajay kumar提供的数组映射解决方案是最好的, 我将提出一个更具动态性、更易于阅读的解决方案

function bindDatas(&$resultSolution, $inputData, $keyName) 
{
    foreach ($inputData as $key => $value) {
        $resultSolution[$key][$keyName] = $value;
    }
}
有些人认为测试代码是这样的:

//your code here
bindDatas($resultSolution, $arrayname, 'name');
bindDatas($resultSolution, $arrayage, 'age');
bindDatas($resultSolution, $arraygender, 'gender');
echo '<pre>';
print_r($resultSolution);
echo '</pre>';

诚然,$key变量引用$inputData中的位置,但我们在这里使用它是因为我们希望保持全局数组中的顺序,一个简单的循环将在这里执行:

array (
    0 => 
    array (
      'name' => 'john',
      'age' => '10',
      'gender' => 'male',
    ),
    1 => 
    array (
      'name' => 'mell',
      'age' => '15',
      'gender' => 'female',
    ),
    2 => 
    array (
      'name' => 'ben',
      'age' => '58',
      'gender' => 'male',
    ),
    3 => 
    array (
      'name' => 'henz',
      'age' => '12',
      'gender' => 'male',
    ),
    4 => 
    array (
      'name' => 'len',
      'age' => '13',
      'gender' => 'female',
    ),
  )
您可以将for循环替换为foreach:


“name”=>“male”-我很确定你的意思是使用性别而不是名称。你好,鲁梅尔,欢迎来到SO。您可能在这里收到了反对票,因为您上面的代码无效。请根据手册检查数组语法:。此外,不提供任何解决方案的尝试也将受到反对。你可以编辑你的问题。虽然这是一篇有趣的文章,但OP试图将几个数组的内容分解成另一个数组。数组映射或简单循环更容易阅读。这是如何更具动态性的?@Progrock我同意你的看法,array\u map更容易,但这里使用的动态词意味着你可以添加其他项目[如出发地点名称或国家名称]
array (
    0 => 
    array (
      'name' => 'john',
      'age' => '10',
      'gender' => 'male',
    ),
    1 => 
    array (
      'name' => 'mell',
      'age' => '15',
      'gender' => 'female',
    ),
    2 => 
    array (
      'name' => 'ben',
      'age' => '58',
      'gender' => 'male',
    ),
    3 => 
    array (
      'name' => 'henz',
      'age' => '12',
      'gender' => 'male',
    ),
    4 => 
    array (
      'name' => 'len',
      'age' => '13',
      'gender' => 'female',
    ),
  )
foreach ($names as $k => $v) {
    $out[] = [
        'name'   => $names[$k],
        'age'    => $ages[$k],
        'gender' => $genders[$k]
    ];
}