Я немного застрял на этом, поэтому я думал, что id передал его здесь.использовать остаток, чтобы выбрать вход
У меня есть таблица, которая может быть динамически построена в полях для оси y, оси x и для значения.
имя поля ввода значений пронумеровано слева направо, сверху вниз.
0,1
2,3
4,5
6,7
Допустит, в поле ввода 7 я ввод значения, и я хочу, чтобы получить X и Y названия осей.
, когда форма суммируется по массиву.
[heading_x] => Array
(
[0] => red
[1] => black
)
[heading_y] => Array
(
[0] => Small
[1] => Medium
[2] => Large
[3] => X-Large
)
[value] => Array
(
[1] => Array
(
[0] =>
[1] =>
)
[2] => Array
(
[0] =>
[1] =>
)
[3] => Array
(
[0] =>
[1] =>
)
[4] => Array
(
[0] =>
[1] => foo
)
код я уже писал до сих пор для нахождения оси х и у из выглядит следующим образом
if(preg_match("#^([0-9]+)\-value([0-9]+)\-([0-9]?)$#is", $key, $match)) {
foreach($attrDetails as $key_2 => $array) {
if($array['attribute_id'] == $match[1] && $val != '0' && $val != '') {
$options = unserialize(stripslashes($attrDetails[$key_2]['attribute_options']));
unset($options['value'][0]);
print_r($options);
$max = count($options['heading_x']);
$base = $match[2] + 1;
$position_x = ($base % $max) + 1;
$position_y = ((floor($base/$max) - 1) < 0 ? 0 : floor($base/$max) - 1);
if($match[3] == '' || $base == '0') {
if($pd_details->pd_activate_special_offer == '1' && $pd_details->pd_offer_price != '0.00') {
if($array['attribute_type'] == '4') {
$cost = $val * $pd_details->pd_offer_price;
}
}else{
if($array['attribute_type'] == '4') {
$cost = sprintf("%01.2f", $val * $pd_details->pd_price);
}
}
}
die($position_x . '/' . $position_y);
echo $options['heading_y'][$position_y-1] . '/' . $options['heading_x'][$position_x-1] . " amount: $val cost: $cost <br />\n";
$_SESSION['basket']['items']['top_option'][] = $options['heading_x'][$position_x-1];
$_SESSION['basket']['items']['side_option'][] = $options['heading_y'][$position_y-1];
$_SESSION['basket']['items']['amount'][] = $val;
$_SESSION['basket']['items']['price'][] = $cost;
}
}
}
основной бит является
$max = count($options['heading_x']);
$base = $match[2] + 1;
$position_x = ($base % $max) + 1;
$position_y = ((floor($base/$max) - 1) < 0 ? 0 : floor($base/$max) - 1);
posiition у, кажется, хорошо , Моя проблема в том позволяет сказать
этаж ($ база/$ макс) - 1
= 3,50.
Я знаю, что 3 является третьим вниз (или ключом 3 забыл), как я могу использовать остаток, чтобы найти ось x?
, так как вы ответили на свой вопрос, пожалуйста, отметьте ответ, как «принято», так что он не отображается в списке unanaswered вопросов. Спасибо. Это также поможет любому, кто найдет эту страницу в будущем, искать ответ на тот же вопрос. – Spudley