我有一个数据结果集,我想写入php中的数组。这是我的示例数据:
**Name** **Abbrev**
Mike M
Tom T
Jim J
使用该数据,我想在php中创建一个具有以下内容的数组:
1|Mike|M
2|Tom|T
3|Jim|j
我尝试了array_push($ values,'name','abbreviation')[伪代码],它给了我以下内容:
1|Mike
2|M
3|Tom
4|T
5|Jim
6|J
如果我查看“Mike”或“M”,我需要查看此数组以获取相同的键值。
将结果集写入上面设置的数组的最佳方法是什么,其中name和abbreviation共享相同的键?
答案 0 :(得分:17)
PHP不是我的顶级语言,但请尝试以下方法:
array_push($values, array("Mike", "M"))
array_push($values, array("Tom", "T"))
array_push($values, array("Jim", "J"))
$name1 = $values[1][0]
$abbrev1 = $values[1][1]
或:
array_push($values, array("name" => "Mike", "abbrev" => "M"))
array_push($values, array("name" => "Tom", "abbrev" => "T"))
array_push($values, array("name" => "Jim", "abbrev" => "J"))
$name1 = $values[1]["name"]
$abbrev1 = $values[1]["abbrev"]
诀窍是使用嵌套数组来配对每个条目中的名称和缩写。
答案 1 :(得分:5)
$person = array('name' => 'Mike', 'initial' => 'M');
array_push($people, $person);
那就是说,我不确定你为什么要单独存储数据。可以通过substr($name, 0, 1)
直接从名称中提取首字母。
答案 2 :(得分:2)
您需要创建一个二维数组来存储多个值。
结果集中的每一行都是一个数组,因此需要将它作为数组添加到变量中。
array_push($values, array('name', 'abbreviation'));
答案 3 :(得分:1)
你可以使用两个独立的数组,可能是:
$values_names = array();
$values_initials = array();
array_push($values_names, 'Mike');
array_push($values_initials, 'M');
array_push($values_names, 'Tom');
array_push($values_initials, 'T');
array_push($values_names, 'Jim');
array_push($values_initials, 'J');
因此,您使用两个数组,第一列和第三列各一个,使用第一列中的值作为两个数组的键。
答案 4 :(得分:1)
也许您为此创建了一个简单的类,因为缩写是您案例中的冗余信息
class Person
{
public $name;
pulbic function __construct($name)
{
$this->name = (string)$name;
}
public function getAbbrev()
{
return substr($this->name, 0, 1);
}
public function __get($prop)
{
if ($prop == 'abbrev') {
return $this->getAbbrev();
}
}
}
$persons = array(
new Person('Mike'),
new Person('Tom'),
new Person('Jim')
);
foreach ($persons as $person) {
echo "$person->name ($person->abbrev.)<br/>";
}
答案 5 :(得分:-1)
php数组的工作方式类似于哈希查找表,因此为了获得所需的结果,您可以初始化2个键,一个具有实际值,另一个具有指向第一个的引用。例如,你可以这样做:
$a = array('m' => 'value');
$a['mike'] = &$a['m']; //notice the end to pass by reference
如果您尝试:
$a = array('m' => 'value');
$a['mike'] = &$a['m'];
print_r($a);
$a['m'] = 'new_value';
print_r($a);
$a['mike'] = 'new_value_2';
print_r($a);
输出将是:
Array
(
[m] => value
[mike] => value
)
Array
(
[m] => new_value
[mike] => new_value
)
Array
(
[m] => new_value_2
[mike] => new_value_2
)
答案 6 :(得分:-3)
必须为Mike和M设置相同的值才能获得密钥。