给数组键值 PHP

Give a values for array keys PHP

$columns = array( 'title', 'client', 'date', 'product', 'status' );

这是打印:

Array
(
    [0] => title
    [1] => client
    [2] => date
    [3] => product
    [4] => status
)

我想为 $columns 数组赋值,如下所示:

Array
(
    [title] => Subject
    [client] => Requester
    [date] => Requested
    [product] => Product
    [status] => Status
)

我试着做这样的东西:

$columns['title']       = 'Subject';
$columns['client']      = 'Requester';
$columns['date']        = 'Requested';
$columns['roduct']      = 'Product';
$columns['status']      = 'Status';

但是合并这两个数组并打印它是行不通的:

    Array
(
    [0] => title
    [1] => client
    [2] => date
    [3] => product
    [4] => status
    [title] => Subject
    [client] => Requester
    [date] => Requested
    [product] => Product
    [status] => Status
)

打印最终结果的代码是这样的:

$columns = array( 'title', 'client', 'date', 'product', 'status' );

$columns['title']       = 'Subject';
$columns['client']      = 'Requester';
$columns['date']        = 'Requested';
$columns['roduct']      = 'Product';
$columns['status']      = 'Status';
$columns = [];
$columns['title']       = 'Subject';
$columns['client']      = 'Requester';
$columns['date']        = 'Requested';
$columns['roduct']      = 'Product';
$columns['status']      = 'Status';
print_r($columns);

你想要一个关联数组

关联数组是具有关联键的数组,例如键的字符串。

创建这些的方法有多种,这里是一种方法:

$columns = [];
$columns['title'] = 'Subject';
$columns['client'] = 'Requester';
$columns['date'] = 'Requested';
$columns['product'] = 'Product';
$columns['status'] = 'Status';

备选方案:

创建数组的简写是使用方括号:

$columns = [
    'title' => 'Subject', 
    'client' => 'Requester', 
    'date' => 'Requested', 
    'product' => 'Product', 
    'status' => 'Status'
];

这将做完全相同的事情,但您使用 array() 而不是 []:

引用数组
$columns = array(
    'title' => 'Subject', 
    'client' => 'Requester', 
    'date' => 'Requested', 
    'product' => 'Product', 
    'status' => 'Status'
);

如果我理解正确,你想添加这些 data

$data = ['Subject', 'Requester', 'Requested', 'Product', 'Status'];

到您提到的列名称

$columns = array( 'title', 'client', 'date', 'product', 'status' );

所以应该是这样的

$columns = array( 'title', 'client', 'date', 'product', 'status' );


function prepareArray($columns){

    $humansTitles = [
        'title' => 'Subject',
        'client' => 'Requester',
        'date' => 'Requested',
        'product' => 'Product',
        'status' => 'Status'
    ];

    $res = [];

    foreach($columns as $col){
        $res[$col] = $humansTitles[$col];
    }

    return $res;
}

print_r(prepareArray($columns));

您似乎在向已有值的数组中添加新的键和值。

如果要创建一个新数组,其中一个数组的值作为键,另一个数组的值作为值,请使用 array_combine

您也可以重新分配给您的原始数组。

<?php

$columns = array( 'title', 'client', 'date', 'product', 'status' );
$values  = array('Subject', 'Requestor', 'Requested', 'Product', 'Status');

$result  = array_combine($columns, $values);

var_export($result);

输出:

array (
'title' => 'Subject',
'client' => 'Requestor',
'date' => 'Requested',
'product' => 'Product',
'status' => 'Status',
)

要将值转换为键,您可以使用 array_flip