我有一个数据库表,其中的选项看起来像这样
我执行SELECT * FROM options
并将所有记录加载到记录集中。
我如何只访问optionName = SMSactive
的optionValue[编辑]
是的,我可以做SELECT * FROM options WHERE optionName ='SMSactive'
- 我知道。
但是正如我所说,因为我有一个记录集,其中有一堆行(来自SELECT),我想拉一个特定的行,其中optionName = SMSactive
[编辑] 如果您使用PHP> = 5.5,则可以使用array_column()http://php.net/array_column
但如果没有,问题已经在PHP multidimensional array search by value
提出并回答了答案 0 :(得分:2)
要使用optionName = SMSactive访问所有记录,SQL应为:
SELECT * FROM `TableName` WHERE `optionName` = 'SMSactive'
如果查询的数组结果是这样的:
$array = array(
0 => array(
'optionName' => 'lala0',
'optionDescription' => 'lala01',
'optionValue' => 'lala03',
),
1 => array(
'optionName' => 'lala1',
'optionDescription' => 'ala2',
'optionValue' => 'SMSactive',
)
);
你可以通过这种方式抓住谁'optionValue' => 'SMSactive',
foreach ($array as $key) {
if ($key['optionValue'] == 'SMSactive') {
$filtered[]=$key;
}
}
echo '<pre>';
print_r($filtered);
echo '</pre>';
旁注:如果数组非常大,你必须小心内存......建议你从数据库中获取当前正在使用的数据。 .IMO